Vous pouvez exécuter votre macro / extrait de code VBA lorsqu’une cellule change sa valeur, lorsqu’un double-clic se produit, lorsqu’une feuille est sélectionnée, etc. Dans tous ces cas, nous utilisons le gestionnaire d’événements de feuille de calcul. Le gestionnaire d’événements nous aide à exécuter du code VBA chaque fois qu’un certain événement se produit.

Dans cet article, nous allons découvrir brièvement chaque gestionnaire d’événements de feuille de calcul.

Qu’est-ce qu’un gestionnaire d’événements Worksheets? Un gestionnaire d’événements de feuille de calcul est un sous-programme qui est local dans un module de feuille de calcul.

Où écrire le code du gestionnaire d’événements de feuille de calcul?

image

Les événements de la feuille de calcul sont écrits dans des objets feuilles uniquement. Si vous écrivez un événement de feuille de calcul dans un module ou un module de classe, il n’y aura pas d’erreur mais ils ne fonctionneront tout simplement pas.

Pour écrire dans l’objet feuille. Double-cliquez dessus ou faites un clic droit et cliquez sur afficher le code. La zone d’écriture du code s’affiche.

Comment écrire du code pour un événement spécifique sur la feuille de calcul?

Maintenant, lorsque vous êtes en mode d’édition, dans le menu déroulant du coin supérieur gauche, vous verrez le général. Cliquez sur la liste déroulante et sélectionnez la feuille de calcul.

Maintenant, dans le menu déroulant du coin supérieur droit, tous les événements s’afficheront. Choisissez celui dont vous avez besoin et un code squelette pour cet événement sera écrit pour vous.

image

Chaque événement a un nom de procédure fixe. Ce sont les noms de sous-programmes réservés. Vous ne pouvez pas les utiliser pour d’autres sous-programmes sur une feuille. Dans un module, ils fonctionneront comme un sous-programme normal.

Important: Chaque sous-programme de cette liste s’exécutera sur l’événement spécifié.

Un type de procédure événementielle de feuille de calcul ne peut être écrit qu’une seule fois sur une feuille. Si vous écrivez deux mêmes procédures de gestion d’événements sur une feuille, cela entraînera une erreur et aucune d’entre elles ne sera exécutée. Bien sûr, l’erreur sera des sous-programmes ambigus.

Apprenons brièvement chacun des événements.

1. L’événement TheWorksheet_Change (ByVal Target As Range) Cet événement se déclenche lorsque nous apportons des modifications aux feuilles de calcul contenant (mise en forme exclue). Si vous voulez faire quelque chose si une modification est apportée à la feuille entière, le code sera:

Private Sub Worksheet_Change(ByVal Target As Range)

'do somehting

Msgbox "done something"

End Sub

La «cible» est toujours la cellule active.

Un autre exemple: vous voudrez peut-être mettre la date et l’heure dans la cellule B1 si A1 change. Dans ce cas, nous utilisons l’événement worksheet_change. Le code ressemblerait à ceci:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then

Range("B1").Value2 = Format(Now(), "hh:mm:ss")

End If

End Sub

Cela ciblera uniquement la cellule A1.

Si vous souhaitez cibler une plage, utilisez l’exemple ci-dessous:

link: / events-in-vba-run-macro-if-any-change-made-on-sheet-range [Exécuter la macro si une modification est apportée sur la feuille dans la plage spécifiée]

2. TheWorksheet_SelectionChange (ByVal Target As Range) * Événement Comme son nom l’indique, cet événement se déclenche lorsque la sélection change. En d’autres termes, si votre curseur se trouve dans la cellule A1 et qu’il se déplace vers une autre cellule, le code de ce sous-programme s’exécutera.

Le code ci-dessous changera la couleur des cellules actives si chaque fois qu’il change et s’il s’agit d’une ligne paire.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row Mod 2 = 0 Then

Target.Interior.ColorIndex = 22

End If

End Sub

Maintenant, chaque fois que mon curseur se déplacera sur une ligne paire, il sera coloré. Les cellules de rangées impaires seront épargnées.

image

Un autre exemple de l’événement Worksheet_SelectionChange:

link: / events-in-vba-simple-vba-code-to-highlight-current-row-and-column-using [Code VBA le plus simple pour mettre en évidence la ligne et la colonne actuelles en utilisant]

3. L’événement Worksheet_Activate () Cet événement est déclenché lorsque le code d’événement contenant la feuille s’active.

Le code squelettique de cet événement est:

Private Sub Worksheet_Activate()

End Sub

Un exemple simple montre le nom de la feuille lorsqu’elle est sélectionnée.

Private Sub Worksheet_Activate()

MsgBox "You are on " & ActiveSheet.Name

End Sub

Dès que vous arriverez sur la feuille qui contient ce code, l’événement se déroulera et sera affiché un message indiquant que « Vous êtes sur le nom de la feuille »

(sheet2 est dans mon cas).

4. L’événement Worksheet_Deactivate () Cet événement se déclenche lorsque vous quittez le code contenant la feuille. En d’autres termes, si vous voulez faire quelque chose, comme masquer des lignes ou quoi que ce soit lorsque vous quittez la feuille, utilisez cet événement VBA. La syntaxe est:

Private Sub Worksheet_Deactivate()

'your code

'

End Sub

L’exemple d’événement Worksheet_Deativate ci-dessous affichera simplement un message indiquant que vous avez quitté la feuille principale, lorsque vous quitterez cette feuille.

Private Sub Worksheet_Deactivate()

MsgBox "You Left The Master Sheet"

End Sub

image

===

5. L’événement Worksheet_BeforeDelete () * Cet événement se déclenche lorsque vous confirmez la suppression de l’événement VBA contenant la feuille. La syntaxe est simple:

Private Sub Worksheet_BeforeDelete()

End Sub

Le code ci-dessous vous demandera si vous souhaitez copier le contenu de la feuille sur le point de supprimer.

Private Sub Worksheet_BeforeDelete()

ans = MsgBox("Do you want to copy the content of this sheet to a new sheet?", vbYesNo)

If ans = True Then

'code to copy

End If

End Sub

6. TheWorksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) * Event Cet événement se déclenche lorsque vous double-cliquez sur la cellule ciblée. La syntaxe de cet événement de feuille de travail VBA est:

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

End Sub

Si vous ne définissez pas la cellule ou la plage cible, elle se déclenchera à chaque double clic sur la feuille.

La variable Cancel est une variable booléenne. Si vous le définissez sur True, l’action par défaut ne se produira pas. Cela signifie que si vous double-cliquez sur la cellule, elle ne passera pas en mode d’édition.

Le code ci-dessous rendra la cellule remplie d’une couleur si vous double-cliquez sur une cellule.

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

Cancel = True

Target.Interior.ColorIndex = 7

End Sub

Le code ci-dessous cible la cellule A1. S’il est déjà rempli avec la couleur spécifiée, la couleur disparaîtra. C’est un peu comme un bouton ou une case à cocher similaire.

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

If Target.Address = "$A$1" Then



Cancel = True

If Target.Interior.ColorIndex = 4 Then

Target.Interior.ColorIndex = xlColorIndexNone

Else

Target.Interior.ColorIndex = 4

End If



End If



End Sub

image

7. TheWorksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) * Événement Cet événement se déclenche lorsque vous cliquez avec le bouton droit sur la cellule ciblée. La syntaxe de cet événement de feuille de travail VBA est:

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

Cancel = True

'

'your code

'

End Sub

Le code ci-dessous remplira la cellule avec la valeur 1 si vous cliquez dessus avec le bouton droit de la souris.

Il n’affichera pas les options de clic droit par défaut puisque nous avons défini l’opérateur « Annuler » sur True.

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

Cancel = True

Target.Value = 1

End Sub

8. TheWorksheet_Calculate () * Event Si vous voulez que quelque chose se produise lorsqu’un Excel calcule une feuille, utilisez cet événement. Il se déclenchera chaque fois qu’Excel calcule une feuille. La syntaxe est simple:

Private Sub Worksheet_Calculate()

'

'your code

'

End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

'

'your code

'

End Sub

Vous pouvez définir le lien hypertexte cible si vous le souhaitez. Si vous ne définissez pas le lien hypertexte cible, il sera exécuté si vous cliquez sur un lien hypertexte sur la feuille contenant le code.

Alors oui les gars, voici quelques événements de base de feuille de calcul qui seront utiles si vous les connaissez. Vous trouverez ci-dessous quelques articles connexes que vous aimerez peut-être lire.

Si vous avez des doutes concernant cet article ou tout autre article lié à Excel / VBA, faites-le nous savoir dans la section commentaires ci-dessous.

Articles liés:

link: / tips-using-worksheet-change-event-to-run-macro-when-any-change-is-made [Utilisation d’un événement de changement de feuille de travail pour exécuter une macro lorsqu’une modification est apportée] * | Donc, pour exécuter votre macro chaque fois que la feuille est mise à jour, nous utilisons les événements de feuille de travail de VBA.

link: / events-in-vba-run-macro-if-any-change-made-on-sheet-range [Exécuter une macro si une modification est apportée sur la feuille dans la plage spécifiée] * | Pour exécuter votre code de macro lorsque la valeur d’une plage spécifiée change, utilisez ce code VBA. Il détecte tout changement effectué dans la plage spécifiée et déclenche l’événement.

lien: / events-in-vba-simple-vba-code-to-highlight-current-row-and-column-using [Code VBA le plus simple pour mettre en évidence la ligne et la colonne actuelles en utilisant] | Utilisez ce petit extrait de code VBA pour mettre en évidence la ligne et la colonne actuelles de la feuille.

Articles populaires:

lien: / clavier-formule-raccourcis-50-excel-raccourcis-pour-augmenter-votre-productivité [50 raccourcis Excel pour augmenter votre productivité] | Accélérez votre tâche. Ces 50 raccourcis rendront votre travail encore plus rapide sur Excel.

lien: / formules-et-fonctions-introduction-de-vlookup-function [La fonction RECHERCHEV dans Excel] | C’est l’une des fonctions les plus utilisées et les plus populaires d’Excel qui est utilisée pour rechercher des valeurs à partir de différentes plages et feuilles. lien: / tips-countif-in-microsoft-excel [COUNTIF dans Excel 2016] | Comptez les valeurs avec des conditions en utilisant cette fonction étonnante. Vous n’avez pas besoin de filtrer vos données pour compter une valeur spécifique.

La fonction Countif est indispensable pour préparer votre tableau de bord.

lien: / excel-formule-et-fonction-excel-sumif-function [Comment utiliser la fonction SUMIF dans Excel] | C’est une autre fonction essentielle du tableau de bord. Cela vous aide à résumer les valeurs sur des conditions spécifiques.