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 :mrgreen:
Código: Selecionar todos
Public 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:
Código: Selecionar todos
If Cells(1, 1) Then
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 todos
Sub 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 :mrgreen:
Código: Selecionar todos
Public 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. ;)