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 :
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 SubPar 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 SubWorksheet_Activate (à l'activation de la feuille) :
Cet événement se déclenche lorsque la feuille est activée :
Private Sub Worksheet_Activate()
End SubWorksheet_Deactivate (à la sortie de la feuille) :
Cet événement se déclenche lorsqu'une autre feuille est activée :
Private Sub Worksheet_Deactivate()
End SubWorksheet_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 SubWorksheet_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 SubWorksheet_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 SubWorksheet_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 SubWorksheet_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 SubDé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

