Graphique incorporé événements à l’aide VBA dans Excel
Utiliser les événements de feuille de graphique (link: / tips-how-to-move-a-chart-to-a-new-sheet-in-excel [worksheet spécialement pour les graphiques]
) est assez simple. Mais quand il s’agit d’utiliser des événements sur des graphiques intégrés, ce n’est pas si simple. Mais je vous assure que les événements avec des graphiques intégrés ne sont pas si difficiles à activer. C’est un peu comme link: / events-in-vba-how-to-create-application-level-events-in-excel-vba [création d’événements d’application]
. Alors sans plus tarder, commençons.
Donc, il y a deux étapes pour activer un événement de graphique intégré. La première consiste à créer une classe d’événements de graphique et à définir des événements. La deuxième consiste à créer un objet de cette classe d’événements. C’est tout.
Étape 1: Créer une classe d’événements de graphique et définir des événements
-
Insérez un lien: / 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é ChartClass.
-
Définissez une variable d’événement de type Chart avec le mot-clé WithEvents.
Private WithEvents CEvents As Chart
-
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 CEvents = ActiveSheet.ChartObjects(1).Chart End Sub
Ici, nous initialisons le graphique CEvents avec le premier graphique créé sur cette feuille. Le 1 est le numéro d’index des objets de graphique sur la feuille active.
-
Définissez maintenant les événements que vous souhaitez utiliser. Dans la liste déroulante en haut à gauche, sélectionnez l’objet CEvent. 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.
Pour démontrer l’utilisation, je choisis l’événement CEvents_Activate. J’essaierai de montrer à l’utilisateur que l’événement graphique est activé dans une boîte de msg.
Private Sub CEvents_Activate() MsgBox "The chart Events are working" End Sub
Notre travail ici est terminé. Vous pouvez créer autant d’événements que vous le souhaitez à partir des événements disponibles pour le type de graphique ici. Mais les événements ne fonctionneront pas encore car ce n’est qu’une classe. Nous devons créer l’objet de cette classe dans un sous dans n’importe quel module normal ou le module objet. Ensuite, exécutez ce sous-marin.
Après cela, notre événement commencera à fonctionner.
Étape 2: Créez l’objet de classe de graphique dans le module.
-
Insérez un module normal.
-
Déclarez une variable de la classe que vous avez créée auparavant.
Dim mychart As ChartClass
-
Créez un sous et initialisez la variable avec l’objet de la classe ChartClass.
Sub activateChartEvent() Set mychart = New ChartClass End Sub
Exécutez ce sous en utilisant F5. Au fur et à mesure que vous exécuterez ce code, les événements de graphique seront actifs pour le premier graphique de la feuille actuellement active, car nous avons utilisé cette ligne pour l’initialisation du graphique eventSet CEvents = ActiveSheet.ChartObjects (1) .Chart. * Et c’est fait. Maintenant, si vous cliquez sur le premier graphique sur la feuille actuellement active, il affichera le message que les événements du graphique fonctionnent.
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 contenant les événements. Mais vous voudrez peut-être les activer et les désactiver à 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 Mychart= 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 surFalse.
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 mychart = New ChartClass End Sub
Démarrage d’événements de graphique 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 utiliser l’événement de graphique intégré 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. Écrivez vos pensées 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:
link: / 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 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.