Os eventos de planilha no Excel VBA

Índice:

Anonim

Você pode querer executar seu fragmento de macro / VBA quando uma célula muda seu valor, quando um clique duplo acontece, quando uma folha é selecionada, etc. Em todos esses casos, usamos o manipulador de eventos de planilha. O Event Handler nos ajuda a executar o código VBA sempre que um determinado evento ocorre.

Neste artigo, aprenderemos rapidamente sobre cada manipulador de eventos de planilha.

O que é um manipulador de eventos de planilhas?

Um manipulador de eventos de planilha é uma sub-rotina local para um módulo de planilha.

Onde escrever o código do manipulador de eventos da planilha?

Os eventos da planilha são escritos apenas nos objetos das planilhas. Se você escrever um evento de planilha em algum módulo ou módulo de classe, não haverá erro, mas eles simplesmente não funcionarão.

Para escrever no objeto de pasta. Clique duas vezes nele ou clique com o botão direito e clique em visualizar código. A área de escrita do código será mostrada.

Como escrever código para um evento específico na planilha?

Agora, quando você estiver no modo de edição, no menu suspenso do canto superior esquerdo você verá o geral. Clique no menu suspenso e selecione a planilha. Agora, no menu suspenso do canto superior direito, todos os eventos serão exibidos. Escolha o que você precisa e um código básico para esse evento será escrito para você.

Cada evento possui um nome de procedimento fixo. Estes são os nomes de sub-rotina reservados. Você não pode usá-los para outras sub-rotinas em uma planilha. Em um módulo, eles funcionarão como uma sub-rotina normal.

Importante: Cada sub-rotina dessa lista será executada no evento especificado.
Um tipo de procedimento de evento de planilha pode ser escrito apenas uma vez em uma planilha. Se você escrever dois mesmos procedimentos de tratamento de eventos em uma folha, isso resultará em um erro e nenhum deles será executado. Claro, o erro será sub-rotinas ambíguas.

Vamos aprender um pouco sobre cada um dos eventos.

1. oWorksheet_Change (ByVal Target As Range)Evento

Este evento é acionado quando fazemos qualquer alteração nas planilhas contidas (formatação excluída). Se você quiser fazer algo, se houver alguma alteração feita em toda a planilha, o código será:

Private Sub Worksheet_Change (ByVal Target As Range) 'do somehting Msgbox "done something" End Sub 

O "Alvo" é sempre a célula ativa.

Outro exemplo: você pode querer colocar a data e a hora na célula B1 se A1 mudar. Nesse caso, usamos o evento worksheet_change. O código ficaria assim:

Sub-planilha_privada_alterar (ByVal Target As Range) If Alvo.Address = "$ A $ 1" Then Range ("B1"). Value2 = Format (Now (), "hh: mm: ss") End If End Sub 

Isso terá como alvo apenas a célula A1.

Se você deseja atingir um intervalo, use o exemplo abaixo:

Executar macro se houver alguma alteração feita na folha no intervalo especificado

2. oWorksheet_SelectionChange (ByVal Target As Range)Evento

Como o nome sugere, este evento dispara quando a seleção muda. Em outras palavras, se o cursor estiver na Célula A1 e se mover para alguma outra célula, o código desta sub-rotina será executado.

O código abaixo mudará a cor das células ativas sempre que mudar e se for uma linha par.

Private Sub Worksheet_SelectionChange (ByVal Target As Range) If Target.Row Mod 2 = 0 Then Target.Interior.ColorIndex = 22 End If End Sub 

Agora, sempre que meu cursor se mover em uma linha par, ele será colorido. Células de linha ímpar serão poupadas.

Outro exemplo do evento Worksheet_SelectionChange:

Código VBA mais simples para destacar a linha e a coluna atuais usando

3. o Worksheet_Activate () Evento

Este evento é disparado quando o código do evento que contém a planilha é ativado. O código do esqueleto para este evento é:

Sub planilha privada_Activate () End Sub 

Um exemplo simples é mostrar o nome da folha quando ela é selecionada.

Private Sub Worksheet_Activate () MsgBox "Você está em" & ActiveSheet.Name End Sub 

Assim que você chegar na planilha que contém este código, o evento será executado e será mostrada a mensagem "Você está no nome da planilha" (planilha2 no meu caso).

4. o Worksheet_Deactivate () Evento

Este evento é disparado ao sair do código que contém a planilha. Em outras palavras, se você quiser fazer algo, como ocultar linhas ou qualquer coisa ao sair da planilha, use este evento VBA. A sintaxe é:

Private Sub Worksheet_Deactivate () 'seu código' End Sub 

O exemplo de evento Worksheet_Deativate abaixo simplesmente exibirá uma mensagem de que você saiu da planilha mestre, quando você sairá desta planilha.

Sub planilha privada_Deactivate () MsgBox "Você saiu da planilha mestre" End Sub 

5. o Worksheet_BeforeDelete ()Evento

Este evento é acionado quando você confirma a exclusão da planilha contendo o evento VBA. A sintaxe é simples:

Private Sub Worksheet_BeforeDelete () End Sub 

O código a seguir perguntará se você deseja copiar o conteúdo da planilha prestes a excluir.

Private Sub Worksheet_BeforeDelete () ans = MsgBox ("Deseja copiar o conteúdo desta planilha para uma nova planilha?", VbYesNo) If ans = True Then 'código para copiar End If End Sub 

6. o Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Evento

Este evento é acionado quando você clica duas vezes na célula de destino. A sintaxe deste evento de planilha VBA é:

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) End Sub 

Se você não definir a célula ou intervalo de destino, ele será disparado a cada clique duplo na planilha.
A variável Cancel é uma variável booleana. Se você definir como True, a ação padrão não acontecerá. Isso significa que se você clicar duas vezes na célula, ela não entrará no modo de edição.
O código abaixo fará com que a célula seja preenchida com uma cor se você clicar duas vezes em qualquer célula.

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Cancel = True Target.Interior.ColorIndex = 7 End Sub 

O código a seguir tem como alvo a célula A1. Se já estiver preenchido com a cor especificada, a cor desaparecerá. É muito parecido com um botão ou caixa de seleção semelhante.

Sub Privado Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$ A $ 1" Then Cancel = True If Target.Interior.ColorIndex = 4 Then Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End If End If End Sub 

7. o Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) Evento

Este evento é acionado quando você clica com o botão direito do mouse na célula de destino. A sintaxe deste evento de planilha VBA é:

Sub Privado Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True '' seu código 'End Sub 

O código abaixo preencherá a célula com o valor 1 se você clicar com o botão direito do mouse. Ele não mostrará as opções padrão de clique com o botão direito, uma vez que definimos o operador "Cancelar" como Verdadeiro.

Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) Cancel = True Target.Value = 1 End Sub 

8. o Worksheet_Calculate () Evento

Se você deseja que algo aconteça quando um excel calcula uma planilha, use este evento. Ele será acionado sempre que o Excel calcular uma planilha. A sintaxe é simples:

Private Sub Worksheet_Calculate () '' seu código 'End Sub 

6. o Worksheet_FollowHyperlink (ByVal Target As Hyperlink)Evento

Este procedimento será executado quando você clicar em um hiperlink na planilha. A sintaxe básica deste manipulador de eventos é:

Private Sub Worksheet_FollowHyperlink (ByVal Target As Hyperlink) '' seu código 'End Sub 

Você pode definir o hiperlink de destino, se desejar. Se você não definir o hiperlink de destino, ele será executado se você clicar em qualquer hiperlink do código que contém a planilha.

Então sim pessoal, estes foram alguns eventos básicos de planilha que serão úteis se vocês os conhecerem. Abaixo estão alguns artigos relacionados que você pode gostar de ler.

Se você tiver alguma dúvida sobre este artigo ou qualquer outro artigo relacionado ao Excel / VBA, informe-nos na seção de comentários abaixo.

Usando o evento de alteração da planilha para executar a macro quando qualquer alteração é feita| Portanto, para executar sua macro sempre que a planilha for atualizada, usamos os Eventos de Planilha do VBA.

Executar macro se houver alguma alteração feita na folha no intervalo especificado| Para executar seu código de macro quando o valor em um intervalo especificado for alterado, use este código VBA. Ele detecta qualquer alteração feita no intervalo especificado e acionará o evento.

Código VBA mais simples para destacar a linha e a coluna atuais usando | Use este pequeno trecho de VBA para destacar a linha e coluna atuais da planilha.

Artigos populares:

50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos tornarão seu trabalho ainda mais rápido no Excel.

A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.

CONT.SE no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar um valor específico. A função Countif é essencial para preparar seu painel.

Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.