Nous pouvons avoir des événements de classeur (comme l'ouverture, la fermeture, etc.) qui peuvent être des déclencheurs (commutateurs) pour le code VBA.
Pour suivre les instructions à l'ouverture du classeur, accédez à ThisWorkbook et sélectionnez Workbook :
L'événement Workbook_Open sera ajouté par défaut et se déclenchera à l'ouverture du classeur :
Private Sub Workbook_Open() End Sub
Par exemple, si nous ajoutons l'instruction suivante, alors la boîte de dialogue s'affichera à l'ouverture du classeur :
Private Sub Workbook_Open() MsgBox "Welcome" End Sub
Pour exécuter les instructions avant de fermer le classeur, sélectionnez BeforeClose :
Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub
La fermeture du classeur peut être annulée en définissant la variable "Cancel" sur True.
Voici un exemple dans lequel l'utilisateur est invité à confirmer la fermeture du classeur :
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Si l'utilisateur répond par NO, alors la variable Cancel aura la valeur TRUE (ce qui annulera la fermeture du classeur) If MsgBox("Do you really want to close this workbook ?", 36, "I confirm") = vbNo Then Cancel = True End If End Sub
Cet événement se produit immédiatement avant l'enregistrement du classeur :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub
L'enregistrement d'un fichier peut être annulé en définissant la variable "Cancel" sur True.
Cet événement se produit avant l'impression du classeur :
Private Sub Workbook_BeforePrint(Cancel As Boolean) End Sub
L'impression du fichier peut être annulée en définissant la variable "Cancel" sur True.
Cet événement se produit immédiatement après l'enregistrement du classeur :
Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub
Cet événement se produit chaque fois que vous basculez entre les feuilles de calcul d'un classeur :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub
Dans cet exemple, le nom de la feuille active est affiché dans la boîte de dialogue :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) MsgBox "Name of Sheet : " & Sh.Name End Sub
Cet événement se produit lorsqu'un double-clic sur une cellule de feuille de calcul :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
Par exemple, nous pouvons utiliser cet événement pour ajouter une couleur de remplissage à une cellule, en fonction de la feuille sélectionnée :
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If Sh.Name = "Sheet1" Then Target.Interior.Color = RGB(255, 108, 0) 'Orange Else Target.Interior.Color = RGB(136, 255, 0) 'Vert End If End Sub
Cet événement se produit avant le clic droit de la souris :
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub
Cet événement se produit chaque fois que le contenu de la feuille de calcul change :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 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 Workbook_SheetCalculate(ByVal Sh As Object) End Sub
Cet événement se produit chaque fois que le contenu de la plage de cellules sélectionnée dans la feuille de calcul change :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) End Sub
Dans cet exemple, la couleur de remplissage change si la cellule A1 est vide :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If Range("A1") = "" Then Target.Interior.Color = RGB(124, 255, 255) 'Bleu End If End Sub
Cet événement se produit chaque fois qu'une nouvelle feuille est ajoutée au classeur :
Private Sub Workbook_NewSheet(ByVal Sh As Object) End Sub
Cet événement se produit lorsqu'un lien (hypertexte) est cliqué :
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink) End Sub