TOP

VBA-Lição 11.2. Eventos de planilha (Worksheet eventos)

Na lição anterior, consideramos os eventos relacionados ao livro inteiro. Agora vamos nos concentrar nos eventos relacionados a uma única planilha.


Worksheet_SelectionChange (Abrindo a pasta de trabalho)

Para executar instruções baseadas em eventos para uma planilha individual, selecione a planilha no editor e então Worksheet:

O evento SelectionChange será adicionado por padrão. Este evento é disparado sempre que o conteúdo do intervalo muda:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Por exemplo, o código a seguir adiciona cores de preenchimento a uma ou mais células selecionadas e remove automaticamente a cor de preenchimento do intervalo selecionado anteriormente quando esse intervalo muda:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Static previous_selection As String

     If previous_selection <> "" Then
         'Removendo a cor de fundo da seleção anterior:
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     'Adicionando cor de fundo à seleção atual:
     Target.Interior.Color = RGB(181, 244, 0)

     'Salvando o endereço da seleção atual:
     previous_selection = Target.Address
End Sub

Worksheet_Activate (evento de ativação de planilha)

Este evento ocorre quando uma planilha é ativada:

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (evento de desativação de planilha)

Este evento ocorre quando outra planilha é ativada:

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (evento de clique duplo em uma célula)

Este evento ocorre quando uma célula da planilha é clicada duas vezes:

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

End Sub

Worksheet_BeforeRightClick (Evento antes do clique com o botão direito)

Este evento ocorre antes do clique direito do mouse na planilha:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate (evento de cálculo de planilha)

Este evento ocorre sempre que os dados de uma planilha são calculados ou recalculados:

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (evento de alteração de conteúdo da célula)

Este evento ocorre sempre que o conteúdo das células de uma determinada planilha é alterado:

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (evento de clique no link)

Este evento ocorre quando um link (hipertexto) é clicado:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Desative temporariamente todos os eventos

Para executar o código sem nenhum evento, insira-o entre duas linhas de código como esta:

 Application.EnableEvents = False '=> desabilitar eventos
 'Algumas instruções...
 Application.EnableEvents = True '=> reativar eventos