Les événements au niveau de l’application fonctionnent sur l’ensemble de l’application (Excel dans cette référence). Mais l’activation de l’événement d’application n’est pas aussi simple que la création d’événements de classeur ou de feuille de travail. Mais je vous assure que ce n’est pas non plus si compliqué. Dans cet article, nous allons apprendre à créer et à utiliser l’événement d’application dans Excel VBA en quelques étapes simples.

Étape 1: Créer un objet événement dans un module de classe

Pour créer un objet événement, nous devons utiliser le module de classe.

  • Insérez un link: / modules-class-modules-in-vba-vba-class-modules-and-how-to-use-them [class module]. Nommez-le comme vous le souhaitez. Je l’ai nommé MyAppEvents.

  • Définissez une variable d’événement de type Application avec le mot-clé WithEvents.

Private WithEvents myApp As Application
  • Initialisez cet événement dans le sous-programme class_initialize ().

Dans la liste déroulante de gauche, sélectionnez la classe. Ensuite, dans le menu déroulant en haut à droite, sélectionnez initialiser.

image

Private Sub Class_Initialize()

Set myApp = Application

End Sub
  • Maintenant, définissez les événements que vous souhaitez utiliser. Dans la liste déroulante en haut à gauche, sélectionnez l’objet événement. Toutes les procédures de gestion des événements disponibles seront à votre disposition dans le menu déroulant en haut à droite. Sélectionnez celui dont vous avez besoin et définissez ce que vous voulez faire lorsque cet événement se déclenche.image: https: //www.office-skill.site/images/wp-content-uploads-2020-01-Capture-37.jpg [image, largeur = 540, hauteur = 208]

J’utilise l’événement SheetActivate. Chaque fois qu’un utilisateur basculera entre les feuilles d’un classeur ouvert, il affichera le nom du classeur et l’utilisateur de la feuille a sélectionné.

Private Sub myApp_SheetActivate(ByVal Sh As Object)

MsgBox ActiveWorkbook.Name & "-" & Sh.Name

End Sub

Vous pouvez définir ici autant d’événements que vous souhaitez définir.

image

Les événements ne commenceront pas à fonctionner immédiatement. C’était la première étape.

Puisqu’il s’agit d’un module de classe, nous devons en créer un objet pour activer les événements.

Il ne nous reste plus qu’à démarrer ces événements à partir d’un sous-programme normal.

Étape 2: Créer un sous-programme de démarrage d’événement dans le module normal

Maintenant, nous avons une classe d’événements. Nous avons juste besoin de créer un objet de cette classe et de l’initialiser. Une fois que nous avons exécuté ce sous-programme, tous les événements définis dans la classe d’événements commenceront à fonctionner.

image

  • Insérez un module normal.

  • Définissez une variable de la classe que vous avez créée.

Private AppE As MyAppEvents
  • Initialisez-le dans un sous-programme. Vous pouvez le nommer comme vous le souhaitez.

Private Sub StartEvents()

Set AppE = New MyAppEvents

End Sub

  • Exécutez ce code en utilisant la touche F5. Vous pouvez éventuellement affecter cette macro au bouton de la feuille de calcul si vous souhaitez démarrer les événements à partir de la feuille de calcul.

Et c’est fait. Désormais, chaque fois que vous changez de feuille, une boîte de message s’affiche avec le nom du classeur et de la feuille, tant que le code contenant le classeur est ouvert.

image

C’était dur? Je ne pense pas. Faites-moi savoir ce que vous pensez dans la section des commentaires ci-dessous.

Activation et désactivation des événements d’application VBA Une fois que vous exécutez la macro dans le module normal, elle se déclenchera toujours jusqu’à ce que vous fermiez le classeur qui contient les événements. Mais vous voudrez peut-être qu’ils les activent et les désactivent à votre guise. Il y a deux façons de faire ça.

Annulez l’objet d’événement Définissez EnableEvents sur False

1. Annulation de l’objet événement

Dans un sous-programme séparé, définissez l’objet événement sur Nothing

Private Sub StopEvents()

Set AppE = Nothing

End Sub

Une fois que vous exécutez ce code, les événements cesseront de fonctionner. Vous pouvez le mettre dans un bouton sur la feuille de calcul pour arrêter les événements. Vous aurez maintenant deux boutons pour démarrer et arrêter ces événements spécifiques. Il arrêtera simplement les événements créés par l’objet AppE.

2. Définissez EnableEvents sur False

La deuxième méthode consiste à désactiver les événements. Pour rendre tous les événements inaccessibles, nous définissons la propriété EnableEvents de la classe Application sur

Faux.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Le code ci-dessus désactivera tous les événements. Même les événements Excel par défaut. Ils ne fonctionneront pas tant que vous ne les redémarrerez pas. Même si vous exécutez le sous-programme StartEvents () (ci-dessus), l’événement ne fonctionnera pas. Pour que tous les événements fonctionnent à nouveau, vous devrez redéfinir la propriété EnableEvents sur True.

Donc, si vous voulez que vos événements fonctionnent à chaque fois que vous démarrez les événements, ajoutez cette ligne de code dans le sous.

Private Sub StartEvents()

Application.EnableEvents = True

Set AppE = New MyAppEvents

End Sub

image

Alors oui les gars, voici comment vous pouvez utiliser l’événement d’application dans Excel. Faites-moi savoir si cela était suffisamment explicatif et vous a aidé à comprendre les événements au niveau de l’application dans Excel VBA dans la section commentaires ci-dessous. Si vous avez quelque chose à ajouter, notez-le également. Vous pouvez poser vos questions liées à cet article ou à tout autre sujet lié à Excel VBA dans la section commentaires ci-dessous.

Téléchargez le fichier de travail ci-dessous:

image 48

Articles liés:

lien: / events-in-vba-the-events-in-excel-vba [Les événements dans Excel VBA] | Il existe sept types d’événements dans Excel. Chaque événement a une portée différente. L’événement d’application traite au niveau du classeur. Cahier au niveau des feuilles. Événement de feuille de travail au niveau de la plage.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Les événements de feuille de travail dans Excel VBA] * | L’événement de feuille de calcul est vraiment utile lorsque vous voulez que vos macros s’exécutent lorsqu’un événement spécifié se produit le la feuille.

lien: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Événements de classeur utilisant VBA dans Microsoft Excel] | Les événements du classeur fonctionnent sur l’ensemble du classeur. Étant donné que toutes les feuilles font partie du classeur, ces événements fonctionnent également sur elles.

link: / events-in-vba-prevent-that-an-automacroeventmacro-executes-using-vba-in-microsoft-excel [Empêcher qu’un automacro / eventmacro s’exécute en utilisant VBA dans Microsoft Excel] * | Pour empêcher l’exécution de la macro auto_open, utilisez la touche Maj.

lien: / events-in-vba-chart-object-events-using-vba-in-microsoft-excel [Chart object events using VBA in Microsoft Excel] * | Les graphiques sont des objets complexes et vous y attachez plusieurs composants. Pour créer les événements graphiques, nous utilisons le module Classe.

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 la valeur 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.