Dans la leçon précédente, nous avons examiné les événements liés à l'ensemble du livre. Nous allons maintenant nous concentrer sur les événements liés à une seule feuille.
Pour exécuter des instructions basées sur des événements pour une feuille de calcul individuelle, sélectionnez la feuille de calcul dans l'éditeur, puis Worksheet :
L'événement SelectionChange sera ajouté par défaut. Cet événement est déclenché chaque fois que le contenu de la plage change :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub
Par exemple, le code suivant ajoute des couleurs de remplissage à une ou plusieurs cellules sélectionnées et supprime automatiquement la couleur de remplissage de la plage précédemment sélectionnée lorsque cette plage change :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static previous_selection As String
If previous_selection <> "" Then
'Suppression de la couleur d'arrière-plan de la sélection précédente :
Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
End If
'Ajout d'une couleur de fond à la sélection actuelle :
Target.Interior.Color = RGB(181, 244, 0)
'Sauvegarde de l'adresse de la sélection en cours :
previous_selection = Target.Address
End Sub
Cet événement se produit lorsqu'une feuille de calcul est activée :
Private Sub Worksheet_Activate() End Sub
Cet événement se produit lorsqu'une autre feuille de calcul est activée :
Private Sub Worksheet_Deactivate() End Sub
Cet événement se produit lorsqu'un double-clic sur une cellule de feuille de calcul :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub
Cet événement se produit avant le clic droit de la souris sur la feuille de calcul :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub
Cet événement se produit chaque fois que les données d'une feuille de calcul sont calculées ou recalculées :
Private Sub Worksheet_Calculate() End Sub
Cet événement se produit chaque fois que le contenu des cellules d'une feuille donnée change :
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Cet événement se produit lorsqu'un lien (hypertexte) est cliqué :
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) End Sub
Pour exécuter le code sans aucun événement, insérez-le entre deux lignes de code comme ceci :
Application.EnableEvents = False '=> désactiver les événements 'Quelques consignes... Application.EnableEvents = True '=> réactiver les événements