Página 1 de 1

Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 13:35
por fernandogaseo
Prezados, boa tarde

Como faço para que uma macro seja executada, de acordo com o valor de uma determinada célula, entre três opções possíveis.

Exemplo, se na célula A60 estiver a palavra BANANA, execute a macro X, senão, se for MANGA, execute a macro Y, senão execute a macro Z.

Essas palavras, BANANA, MANGA... são resultados de função.

Se não fui claro, posso explicara melhor.

Abraço

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 13:37
por fernandogaseo
A macro deve ser executada automaticamente, sem clicar em botão, apenas alterando o valor da célula, a macro deverá ser executada.

Obrigado desde já

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 14:06
por osvaldomp
#
Experimente:
Código: Selecionar todos
Private Sub Worksheet_Calculate()
 If [A60] = "BANANA" Then
  macroX
 ElseIf [A60] = "MANGA" Then
  macroY
 Else: macroZ
 End If
End Sub

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 14:44
por fernandogaseo
Graaaaannnnde Osvaldo, rs

Funcionou perfeitamente. Muito obrigado, mais uma vez.. tá ficando chato isso heim, hehe :D

Abraço, valew

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 14:55
por fernandogaseo
Osvaldo, outra questão, responda quando puder.

Seguindo a mesma ideia, e se eu quiser que um botão com macro atribuída, só fique ativo se uma célula possuir uma palavra específica.

Ou seja, tem a palavra X, o botão funciona, não tem a palavra X, fica como se não tivesse macro.

agradeço desde já

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 15:08
por osvaldomp
1. a palavra na célula será inserida manualmente ou será resultado de fórmula ?

2. o botão é do tipo Controle de Formulário ou Controle ActiveX ?

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 15:13
por fernandogaseo
1. A palavra é resultado de fórmula.
2. O Botão é do tipo Controle de Formulário

Re: Executar macro de acordo com valor célula

Enviado: 18 Mar 2021 às 16:51
por osvaldomp
no módulo da planilha de interesse
Código: Selecionar todos
Private Sub Worksheet_Calculate()
 If [A1] = "Bozo" Then ActiveSheet.Shapes("Botão 1").OnAction = "Milícia" Else ActiveSheet.Shapes("Botão 1").OnAction = ""
End Sub
#
em um módulo comum
Código: Selecionar todos
Sub Milícia()
 MsgBox "hello, I'm Milícia"
End Sub
#
funcionamento - se ao recalcular a planilha a fórmula em A1 retornar "Bozo" então o primeiro código irá vincular o Botão 1 à macro Milícia; para qualquer outro resultado em A1 o código irá desvincular o botão; se necessário altere no primeiro código o nome do botão