Comment créer des gestionnaires d'événements de niveau application dans Excel

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 213566
Pour obtenir une version Microsoft Excel 97 de cet article, reportez-vous à la section. 158244.
Résumé
Si vous souhaitez un gestionnaire d'événements particulier pour exécuter chaque fois qu'un certain istriggered d'événements, vous pouvez écrire un gestionnaire d'événements pour l'objet Application. Eventhandlers pour l'objet Application sont globales, ce qui signifie que long asMicrosoft Excel est ouvert, le Gestionnaire d'événements s'exécutera lorsque l'appropriateevent se produit, quel que soit le classeur est actif lorsque l'événement se produit.

Cet article décrit comment créer un andprovides de gestionnaire d'événements au niveau de l'Application exemple.
Plus d'informations
Pour créer un gestionnaire d'événements au niveau de l'Application, vous devez utiliser la procédure de followingbasic :
  • Déclarez une variable pour l'objet Application en utilisant la WithEvents mot clé. Le WithEvents mot clé peut être utilisé pour créer une variable objet qui répond aux événements déclenchés par un objet ActiveX (par exemple, l'objet Application).REMARQUE: WithEvents n'est valide que dans un module de classe.

  • Création de la procédure pour l'événement d'Application spécifique. Par exemple, vous pouvez créer une procédure pour l'événement WindowResize, WorkbookOpen ou SheetActivate de l'objet que vous avez déclaré à l'aide de WithEvents.
  • Créer et exécuter une procédure qui démarre le Gestionnaire d'événements.
L'exemple suivant utilise ces étapes pour configurer un handlerthat d'événements global affiche une boîte de message chaque fois que vous redimensionnez la fenêtre d'un classeur (theevent déclenche le Gestionnaire d'événements).

Création et lancement d'un gestionnaire d'événements

  1. Ouvrez un nouveau classeur.
  2. Dans le menu Outils , pointez sur Macro, puis cliquez sur Visual Basic Editor.

    Remarque Dans Microsoft Office Excel 2007, cliquez sur Visual Basic dans le groupe de codes sous l'onglet développeur .
  3. Cliquez sur Module de classe sur le Insérer menu. Ceci insérera un module intitulé «<book name=""> -Class1 (Code) » dans votre projet.</book>

  4. Entrez la ligne de code suivante dans Class1 module (Code) :
    Public WithEvents appevent As Application
    Le WithEvents mot clé permet d'activer la variable appevent dans le Objet liste déroulante dans Class1 fenêtre du module (Code).
  5. Dans Class1 fenêtre de module (Code), cliquez sur le Objet liste déroulante, puis cliquez sur AppEvent dans la liste.
  6. Dans Class1 fenêtre de module (Code), cliquez sur le Procédure liste déroulante, puis cliquez sur WindowResize dans la liste. Cette opération ajoute les éléments suivants à Class1 feuille de module (Code) :
       Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _       ByVal Wn As Excel.Window)   End Sub					
  7. Ajoutez le code de la classe1 module (Code) de la feuille de sorte qu'il apparaisse comme suit :
           Public WithEvents appevent As Application       Private Sub appevent_WindowResize(ByVal Wb As Excel.Workbook, _           ByVal Wn As Excel.Window)           MsgBox "you resized a window"       End Sub					
    Ensuite, vous devez créer une instance de la classe, puis définissez l'appeventobject de l'instance de Class1 à Application. Cela se produit parce qu'une variable, en whenyou WithEvents, au moment du design, il n'y a aucun objectassociated avec lui. A WithEvents variable est comme les autre objectvariable - vous devez créer un objet et lui assigner une référence à pourla à la WithEvents variable.

  8. Sur le Insérer Cliquez sur le menu Module Pour insérer une feuille de module de type général dans votre projet.
  9. Dans cette feuille de module, entrez le code suivant :
          Dim myobject As New Class1      Sub Test()          Set myobject.appevent = Application      End Sub					
  10. Exécuter le test macro.

    Vous venez de définir le Gestionnaire d'événements pour exécuter chaque fois que vous redimensionnez un workbookwindow dans Microsoft Excel.
  11. Sur le Fichier menu, cliquez sur Fermer et retourner à Microsoft Excel.
  12. Redimensionner une fenêtre de classeur. Une boîte de message « vous avez redimensionné une fenêtre » s'affichera.

Comment faire pour désactiver le Gestionnaire d'événements

Si vous fermez le classeur qui contient le projet ci-dessus, le Gestionnaire d'événements au niveau de l'application sera désactivé. Pour désactiver par programmation le gestionnaire theevent, effectuez les opérations suivantes :
  1. Démarrez l'éditeur Visual Basic.
  2. Dans le code de macro que vous avez entré à l'étape 9, modifiez la macro pour :
          Sub test()          Set myobject.appevent = Nothing      End Sub					
  3. Exécuter le test macro à nouveau.
  4. Sur le Fichier menu, cliquez sur Fermer et retourner à Microsoft Excel.
  5. Redimensionner une fenêtre de classeur.

    La boîte de message ne s'affichera pas.
VBE vba XL2000 xl2002 XL2003 XL2007

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 213566 - Dernière mise à jour : 06/21/2015 01:24:00 - Révision : 5.0

Microsoft Excel 2000 Standard, Microsoft Excel 2002, Microsoft Office Excel 2007

  • kbexpertisebeginner kbdtacode kbFAQ kbhowto kbprogramming kbmt KB213566 KbMtfr
Commentaires