Ir ao conteúdo
  • Cadastre-se
tiagonmuniz

Resultado de Procv não ativa macro

Recommended Posts

Bom dia!

Pessoal, to com o seguinte problema,

tenho uma macro que é disparada automaticamente quando um valor é inserido em uma celula especifica, (isso eu digitando o valor), agora gostaria de fazer com que essa macro fosse disparada automaticamente de acordo com o resultado de uma PROCV, ao invés de ter que digitar o valor.

porém a procv não está ativando a macro, alguem pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Dia...

como você nao postou um modelo de sua planilha, vai uma ideia

e você ve ai se funciona...

pelo q você falo, su macro precisa do valor do procv pra retornar o que você quer...

tenta colocar como desparador do vb as celulas que você digita para o Procv...

por ex: =procv(A5;G1:H60;2;0)

no caso você coloca como disparador do vb a celula A5....

espero ter ajudado!:cool:

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia deejaywesley!

amigo, o problema é que o que influencia toda a planilha é o resultado da procv e nao a celula na qual é digitada.

exemplo, minha planilha pega por exemplo a marca, eu digito o codigo do produto e cada 1 deles tem uma marca, de acordo com o resultado da marca é que a macro dispara, porém são varias macros, entende? para cada marca 1 macro diferente. vou mostrar como fiz para disparar e você ve se tem algo errado.

o interessante é que se eu digitar no teclado o codigo ela executa, se eu puser uma procv, para pegar o resultado ai ela nao executa a macro.

Procv: =PROCV(E4;'[NOMENCLATURA DE PRODUTOS ATUALIZADA.xlsx]Produtos'!$1:$1048576;10;FALSO)

Macro:

Select Case Target.Address

Case "$G$19"

If UCase(Target.Value) = "-922" Then Call XXX_ORG_DESDOBRAMENTO

End Select

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!

Use o evento calculate, toda vez que sua formula mudar de resultado o código é acionado.

Private Sub Worksheet_Calculate()
'SeuCódigoAqui
'Deve ser posto no módulo de planilha
End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia!!!

Se eu considerar que as macros citadas por você depende de um gatinho em formalas, então, faça assim...

Private Sub Worksheet_Calculate()
Call Macro1
Call Macro2
Call Macro3
'Etc...
End Sub

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não funcionou ativou as macros, e ainda pediu para depurar. vou tentar postar a planilha ainda hoje para facilitar o entendimento de vocês.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Senhores...

Alguem pode me ajudar,

ainda nao consegui resolver este problema.

Vou tentar explicar novamente.

Tenho uma planilha na qual eu insiro os dados em e4 e ela retorna um resultado de procv em m4. desta forma quero que de acordo com o valor em e4 ela dispare uma macro.

Obs: Manualmente eu tenho os mesmos codigos em uma celula G19 com validação de dados, ou se digitar manualmente ele já dispara a macro automatico.

Então o problema é apenas fazer com que o resultado da Procv ative.

Tentei por um link em G19 tipo =m4

porém a celula altera o valor mas não ativa a macro.

porém se eu der um F2 na celula g19 e logo apos enter, ai a macro é acinonada. Sendo assim, como faço para que seja automatico. tipo toda vez que inserir um valor em C4 já faça o g19 disparar.

Alguem pode me dar um help. Pelo que entendi tem que usar o Calculate. porém não sei como fazer.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

Velho ... pra fazer funcionar o evento calculate é só colocar o nome da macro dentro dele EX: tenho em B1 =SE(A1=1;A1;0)

no modulo tenho:

Sub teste()
If [A1] = 1 Then
[C1] = "valor 1"
Else
[C1] = "O valor não é 1"
End If
End Sub

no evento calculate eu tenho

Private Sub Worksheet_Calculate()
teste
End Sub

mas cuidado ao usa-lo pois qualquer calculo feito na planilha vai disparar o evento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, vou testar amanha a noite e ja dou resposta.

Uma duvida o calculate, faz a função indiferente do resultado? ou seja ele calcula o valor da celula??

Desculpe as perguntas... é que estou aprimorando as planilhas, colocando outras funçoes... por isso a duvida e sou totalmente leigo em VBA.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Obrigado, vou testar amanha a noite e ja dou resposta.

Uma duvida o calculate, faz a função indiferente do resultado? ou seja ele calcula o valor da celula??

Desculpe as perguntas... é que estou aprimorando as planilhas, colocando outras funçoes... por isso a duvida e sou totalmente leigo em VBA.

o calculate executa uma função quando algo na planilha é calculado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perdão meu amigo Zinhovba, eu ainda não entendo como fazer isso funcionar kkkkk. hje a noite vou pegar com calma e tentar fazer funcionar. ahsahsuhas

o Problema é que eu nao entendi como funciona esse codigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

velho ... talvez o calculate não seja o mais indicado para o q você quer fazer.

poste uma planilha de exemplo pois uma coisa tá complicada de entender ... você quer q o procv dispare a macro, tranquilo, mas é o seguinte ... pra q q você quer uma macro pra ser disparada só uma vez ???? entendeu minha dúvida ??

um exemplo de como funciona um calculate com o procv

http://www.sendspace.com/file/79nigg

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

então amigo... Fiz o comentario de apenas 1x pois tentei outros codigos e a planilha nao parava de calcular... Preciso na verdade que seja calculado apenas quando alterar em uma celula o resultado.

Obvio que toda a vez que ela for alterada precisa disparar a macro.

Pessoal ficou 100%

muito obrigado a todos!

PESSOAL, MAIS UMA DUVIDA

FIZ ESTE VBA

If Worksheets("001 - Informações EXPORTAÇÃO").Range("C12").Value = "" Then

MsgBox "INFORME O NÚMERO DA NOTA FISCAL"

Exit Sub

End If

End Sub

porém ELE ESTÁ ATIVANDO A MENSAGEM DE TEXTO EM TODAS AS PLANILHAS QUE TENHO EM ABERTO.

COMO FAÇO PARA QUE ELE DE A MENSAGEM APENAS ENQUANTO ESTIVER NESTA PLANILHA "001 - ..." ??

OBRIGADO.

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

If Worksheets("001 - Informações EXPORTAÇÃO").Range("C12").Value = "" and Worksheets("001 - Informações EXPORTAÇÃO").Activate Then

Coloque a macro dentro do evento Change

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×