Página 1 de 1
Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 00:13
por Intruder18
Boa noite pessoal, esse é meu primeiro tópico, procurei e não achei nada semelhante. Me perdoem se por ventura eu tenha feito algo de errado.
Preciso de uma ajuda com VBA:
Montei uma planilha para atualizar certos relatórios diariamentes.
Mas quero dizer a macro qual relatórios atualizar.
Quero criar uma macro que faça isso.
Ao iniciar a macro quero que ela considere o que está dentro de "A1" para continuar.
Se estiver escrito "Verdadeiro" ela executa "Call" a Macro1. Se estiver escrito "Falso" ou qualquer outra coisa deferente de Verdadeiro, ela tem que chamar "Call" a macro2. Preciso ainda que se se escrito Verdadeiro em "A1" e ela chamar a macro1, seja inserido em "B1" a palavra "Atualizado" e se estiver escrito em "A1" Falso e ela chamar a macro2, seja inserido tem em "B1" a palavra "Não atualizado".
Conseguem me ajudar com isso?
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 08:10
por Sandman
bom dia intruder18, veja se é isso que voce quer
Código: Selecionar todosPublic Sub controle()
If Cells(1, 1).Value = "verdadeiro" Then
macro1 'chama sua macro1 aqui
Cells(1, 2).Value = "Atualizado"
Else
macro2 'chama sua macro2 aqui
Cells(1, 2).Value = "Não Atualizado"
End
End Sub
Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 08:37
por laennder
Não é legal fazer essa comparação Cells(1,1).Value = "VERDADEIRO", visto que caso a sua planilha seja aberta em PC configurado em outro idioma, esse valor por ser lógico, pode aparecer como TRUE, por exemplo.
Faça assim:
Como é um valor lógico não é necessário comparação.
[]'s
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 08:38
por alexandrevba
Bom dia!!
Outra forma (talvez mereça adaptação),seria...
Código: Selecionar todosSub AleVBA_515()
Select Case Range("A1").Value
Case "Verdadeiro"
MsgBox "Eu sou a Macro 1, em execução!"
[B1].Value = "Atualizado"
Case Else
MsgBox "Eu sou a Macro 2, em execução!"
[B1].Value = "Não Atualizado"
End Select
End Sub
Att
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 10:41
por Intruder18
Sandman escreveu:bom dia intruder18, veja se é isso que voce quer
Código: Selecionar todosPublic Sub controle()
If Cells(1, 1).Value = "verdadeiro" Then
macro1 'chama sua macro1 aqui
Cells(1, 2).Value = "Atualizado"
Else
macro2 'chama sua macro2 aqui
Cells(1, 2).Value = "Não Atualizado"
End
End Sub
Sandman,
É possível definir a célula analisada dessa forma "A1" ao invés de (Cells1,1) ?
Porque vou usar inúmeras vezes o recurso.
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 10:46
por alexandrevba
Bom dia!!
Se reparou na minha postagem, uma forma de referência seria [A1].value ="Meu valor" ou Range("A1").value= "Meu Value"..etc
Att
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 11:21
por Sandman
bom dia intruder88, como a alexandrevba disse, vc pode substituir cells(1,1) por plan1.range("a1").value para valores de celulas unicas ou se quiser passar um intervalo plan1.range("a1:c3").value por exemplo ok
Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 11:49
por Intruder18
Obrigado pessoal, conseguiu utilizar o codigo perfeitamente.
Vocês sabem me dizer se o If, then, else e o Case são a mesma coisa.
Tipo, a aplicação do If ou o case vão resultar nós mesmos resultados?
Re: Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 11:51
por alexandrevba
Bom dia!!
Sim!!!
A diferença é que a implementação pode resultar na junção ou não dos mesmo de acordo com a necessidade.
Att
Ajuda com VBA Call com critério
Enviado: 01 Set 2015 às 23:15
por Intruder18
Como faço para o fechar o tópico co resolvido?
Ajuda com VBA Call com critério
Enviado: 02 Set 2015 às 08:07
por Pernilongo
bom dia intruder18, é só clicar no botão marcar como resolvido no topo de cada post do topico da sua questão, daí é só vc clicar no post que acha que resolveu seu problema ok, ahhh o botão fica do lado esquerdo do botão obrigado.
