Comment faire pour créer des événements dans l’application de niveau Excel VBA
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.
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.
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.
-
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.
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
Démarrage des événements d’application personnalisés à chaque ouverture du classeur Si vous développez un outil pour l’utilisateur final, vous souhaiterez peut-être que les événements fonctionnent automatiquement. Dans ce cas, vous pouvez placer le démarreur d’événement dans l’événement link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Workbook object]
with Workbook_open () event, au lieu de dans un module normal. Cela rendra votre objet événement initialisé dès que vous ouvrirez le classeur qui contient les événements.
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:
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.