Vous avez apprécié ?
Cliquez ;-)

Cours VBA : les événements Worksheet

A la page précédente les événements concernaient le classeur entier. Sur celle-ci, nous allons nous focaliser sur les événements liés à une feuille.

Worksheet_SelectionChange (au changement de sélection)

Pour exécuter des instructions en fonction d'un événement pour une feuille en particulier, sélectionnez la feuille dans l'éditeur, puis Worksheet :

worksheet - evenements feuille

L'événement SelectionChange est ajouté par défaut, il agit lors d'un changement de sélection :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Par exemple, voici un code qui colore la ou les cellules sélectionnées et qui supprime automatiquement la coloration de la dernière sélection lors d'un changement de sélection :

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

    If selection_precedente <> "" Then
        'Suppression de la couleur de fond de la sélection précédente :
        Range(selection_precedente).Interior.ColorIndex = xlColorIndexNone
    End If

    'Coloration de la sélection actuelle :
    Target.Interior.Color = RGB(181, 244, 0)

    'Enregistrement de l'adresse de la sélection actuelle :
    selection_precedente = Target.Address
End Sub

Worksheet_Activate (à l'activation de la feuille)

Cet événement se déclenche lorsque la feuille est activée :

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (à la sortie de la feuille)

Cet événement se déclenche lorsqu'une autre feuille est activée :

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (au double-clic)

Cet événement se déclenche lors d'un double-clic sur une cellule de la feuille :

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

End Sub

Worksheet_BeforeRightClick (au clic droit)

Cet événement se déclenche lors d'un clic droit sur la feuille :

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

End Sub

Worksheet_Calculate (au recalcul de la feuille)

Cet événement se déclenche lorsque les données de la feuille sont recalculées :

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (à chaque modification de cellule)

Cet événement se déclenche lors de modifications du contenu des cellules de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (au clic sur un lien)

Cet événement se déclenche lors d'un clic sur un lien hypertexte :

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

Désactiver temporairement tous les événements

Pour exécuter du code sans déclencher d'événements, placez-le entre ces deux lignes :

Application.EnableEvents = False ' => désactive les événements
'Instructions
Application.EnableEvents = True ' => réactive les événements