No Excel podemos executar uma macro manualmente ao atribuí-la a um botão ou dispará-la automaticamente ao criar um evento que vai causar seu acionamento. Para executar uma macro no Excel ao selecionar uma célula ou intervalo é necessário, através do VBA, criar na determinada planilha o evento Worksheet_SelectionChange.
Caso também tenha dúvidas em como criar uma macro leia meu artigo: Como criar macro no Excel A FORMA MAIS FÁCIL.
Como Criar um Evento em Planilha pelo VBA Excel
Siga os seguintes passos para criar um evento em planilha no Excel usando VBA:
- Abra a planilha de interesse e com ela carregada aperte ALT+F11 para abrir o menu de desenvolvimento com VBA
- Clique duas vezes no painel lateral esquerdo sobre a planilha que tem interesse de modificar, no meu caso escolhi a Planilha1
- Ao lado direito deve abrir o campo para inserir o código de VBA que vai funcionar apenas naquela planilha. Na parte superior na caixa de seleção selecione Worksheet e na caixa de seleção mais à direita selecione o evento SelectionChange
Pronto! ao seguir estes passos automaticamente o corpo do código do evento já foi adicionado automaticamente à sua planilha.
Este é o caminho mais intuitivo para criar este ou qualquer outro evento, entretanto é possível adicioná-lo apenas copiando e colando o código abaixo na planilha que tenha interesse:
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Como Executar uma Macro ao Selecionar uma Célula no Excel
Agora que aprendemos como criar o evento Worksheet_SelectionChange podemos utilizar uma lógica no Excel para detectar quando estamos clicando sobre a célula que temos interesse.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("A1")) Is Nothing Then Call MinhaMacro End If End If End Sub
No exemplo acima, a MinhaMacro somente vai ser disparada quando o usuário da Planilha1 clicar sobre a célula A1.
Como Executar uma Macro ao Selecionar uma Célula em um Intervalo no Excel
De forma similar ao exemplo anterior o evento a ser utilizado é o Worksheet_SelectionChange e alguma lógica para detectar o encontro da célula selecionada comparada com o intervalo que o evento retorna na variável Target.
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("A1:A10")) Is Nothing Then Call MinhaMacro End If End If End Sub
No exemplo acima, a MinhaMacro somente vai ser disparada quando o usuário da Planilha1 clicar sobre qualquer célula no intervalo de A1:A10
Conclusão
Neste artigo, vimos um guia completo de como trabalhar com o evento Worksheet_SelectionChange no VBA Excel.
Eu sei que não é comum ler um artigo deste, como tutorial, e repetir para aprender, mas recomendo fortemente que você tome coragem de repetir todo o passo-a-passo. Desenvolva seu próprio método para nomear variáveis, veja o que funciona para você, formalize-o e use de forma consistente.
Eu penso que praticar é a melhor maneira de aprender e, embora pareça simples, é preciso se acostumar a navegar entre as telas para que no futuro você possa se tornar um usuário avançado.
O site deste pessoal aqui foi referência para este artigo. O site é muitoooo bacana com várias dicas legais de programação, mas infelizmente o conteúdo está em inglês, o que não deixa de ser uma boa referência para quem conseguir acompanhar. Eu recomendo.
Portanto, continue lendo mais sobre VBA aqui.
Sou curioso no Excel. Fiz uma planilha com inserção de dados e essa sua dica foi fundamental….. Muito obrigado.