GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Office    Executar um macro
Go
Novo
Procurar
Notificar
Ferramentas
Responder
  
Executar um macro
 Login/Cadastrar
 
<alexandre s andrade>
postado
Boa noite a todos!!!

Tenho uma questão que me intrigar.

Queria saber se é possível executar um macro atraves do resultado de uma formula

Ex: se(a1="sim";executar macro 1;executar macro2)

Guato pela atenção,

Alexandre
 
Reply With QuoteReport This Post
<César Elias>
postado
Caro Alexandre,

Não sei se vai ajudar muito, mas tente este código.
Na célula c1 coloque sim ou não e na célula c3 coloque +c1.
Então sempre que vc selecionar a celula c3
dependendo do resultado ele executará uma macro. Vc pode trabalhar normalmente. Somente quando selecionar a c3 que a macro executará.

abraços,

cesar


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
With Target
If .Row >= 3 And .Row <= 3 Then
If .Column >= 3 And .Column <= 3 Then
If ActiveCell = "sim" Then
Range("a1").Select
GoTo termina
End If
End If
Range("a4").Select
End If
End With
termina:
End Sub
 
Reply With QuoteReport This Post
Programador Pleno

postado Hide Post
Alexandre, é possível sim, desde que a macro seja uma Function e não uma Sub. Vc. poderá inclusive passar parâmetros, como um valor ou intervalo de células.
Entretanto, quando vc. usa o Gravador de macro, o Excel sempre cria uma Sub por padrão. Portanto, vc. deverá entrar no Editor do Visual Basic e criar a Function lá dentro, ou gravar uma macro e alterar o nome para uma Function. O importante é que ela deverá retornar um valor válido, ou seja, em algum lugar deverá haver uma atribuição de valor à função, como:
Function MinhaFunção()
'Blá, blá, blá
...
...
MinhaFunção = "Alguma Coisa ou Valor"
...
End Function

Pegando de seu exemplo: se o valor da célula A1 for "sim", espera-se que B1 retorne o valor que virá da função MacroSIM, caso contrário, retorne o valor MacroNÃO. Façamos o seguinte:
  • Abra o Editor do Visual Basic e no menu Inserir, escolha "Módulo";
  • No módulo, insira o seguinte código de exemplo:
    Function MacroSIM()
      MacroSIM = "Vim da MacroSIM"
    End Function
    
    Function MacroNÃO()
      MacroNÃO = "Vim da MacroNÃO"
    End Function
  • Na célula B1, digite a fórmula*
    =SE(A1 = "sim"; MacroSIM(); MacroNÃO())

Feito isto, se for inserido "sim" como conteúdo de A1, B1 retornará "Vim da MacroSIM". Qualquer outro valor retornará "Vim da MacroNÃO".

*Obs.: os parênteses vazios ao lado do nome da função são necessários.
 
Postagens: 225 | Localização: Joinville, SC, Brasil | Registrado: 12 April 2001Reply With QuoteReport This Post
  Powered by Social Strata  
 

GD Access    GD Access    Grupo de Discussão  Ir para Categorias  Grupos técnicos  Ir para Fóruns  Office    Executar um macro

©