PaliSkill
Introduction au VBA

Leçon 7 / 9 — Chapitre 4: Interaction, fonctions et automatisation

L'événement Worksheet_Change

Toutes les macros vues jusqu'ici se lancent manuellement (bouton, raccourci). Un événement, lui, se déclenche AUTOMATIQUEMENT quand quelque chose se produit dans le classeur — ici, dès qu'une cellule est modifiée sur une feuille donnée.

Où placer ce code

Contrairement aux Sub habituelles écrites dans un Module standard, le code d'un événement de feuille doit être placé dans le module de code DE LA FEUILLE elle-même (double-clic sur le nom de la feuille dans l'Explorateur de projets, à gauche de l'éditeur VBA).

La structure de l'événement

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$2" Then
        MsgBox "La cellule B2 a été modifiée"
    End If
End Sub

Ce code s'exécute automatiquement à CHAQUE modification, sur N'IMPORTE QUELLE cellule de la feuille. Le paramètre Target représente la cellule qui vient d'être modifiée ; le If Target.Address = "$B$2" filtre pour ne réagir que si c'est précisément cette cellule-là qui a changé, en ignorant toutes les autres modifications.

Un usage courant : valider une saisie automatiquement

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$5" Then
        If Target.Value < 0 Then
            MsgBox "Valeur invalide : ne peut pas être négative"
        End If
    End If
End Sub

Exemple concret : un tableau de suivi de budget doit alerter automatiquement dès qu'une dépense saisie dépasse un montant limite dans une cellule précise, sans que l'utilisateur ait besoin de cliquer sur un bouton — l'alerte doit apparaître au moment même de la saisie, ce que seul un événement peut déclencher.

À vous de jouer : placez un Worksheet_Change dans le module d'une feuille, qui affiche un message d'avertissement dès que la cellule A1 est modifiée pour contenir une valeur négative.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 76 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès