Exemples Excel VBA : exemples dévénements dintroduction

Si vous essayez de bien comprendre Excel VBA , vous pourriez probablement bénéficier de quelques exemples pour développer ces prouesses visuelles de base. Vous trouverez ici quelques exemples Excel VBA afin que vous puissiez vous familiariser avec cette entreprise de gestion d'événements.

Exemple Excel VBA : L'événement Open pour un classeur

L' événement Workbook Open est l'un des événements Excel VBA les plus couramment utilisés . Supposons que vous ayez un classeur que vous utilisez tous les jours. La procédure Workbook_Open de cet exemple est exécutée à chaque ouverture du classeur. La procédure vérifie le jour de la semaine ; si c'est vendredi, le code affiche un message de rappel pour vous.

Pour créer la procédure Excel VBA qui est exécutée chaque fois que l'événement Workbook Open se produit, procédez comme suit :

Ouvrez le classeur Excel.
N'importe quel classeur Excel fera l'affaire.

Appuyez sur Alt+F11 pour activer le VBE.

Localisez le classeur dans la fenêtre Projet.

Double-cliquez sur le nom du projet pour afficher ses éléments, si nécessaire.

Double-cliquez sur l'élément ThisWorkbook.
Le VBE affiche une fenêtre de code vide pour l'objet ThisWorkbook.

Dans la fenêtre Code, sélectionnez Classeur dans la liste déroulante Objet (gauche).
Le VBE entre les instructions de début et de fin pour une procédure Workbook_Open.

Entrez les instructions suivantes, de sorte que la procédure événementielle complète ressemble à ceci :

Sous-classeur privé_Open()
  Dim Msg en tant que chaîne
  Si Jour de la semaine (Maintenant) = 6 Alors
    Msg = "Aujourd'hui, c'est vendredi. N'oubliez pas de "
    Msg = Msg & "soumettre le rapport TPS !"
    MsgBox Msg
  Fin si
Fin du sous-marin

La fenêtre Code devrait ressembler à ceci.

Exemples Excel VBA : exemples d'événements d'introduction

Cette procédure de gestionnaire d'événements est exécutée lorsque le classeur est ouvert.

Workbook_Open est exécuté automatiquement à chaque ouverture du classeur. Il utilise la fonction WeekDay de VBA pour déterminer le jour de la semaine. Si c'est vendredi (jour 6), une boîte de message rappelle à l'utilisateur de soumettre un rapport. Si ce n'est pas vendredi, il ne se passe rien.

Si aujourd'hui n'est pas vendredi, vous pourriez avoir du mal à tester cette procédure. Vous pouvez simplement changer le 6 pour qu'il corresponde au numéro du jour actuel.

Et bien sûr, vous pouvez modifier cette procédure comme bon vous semble. Par exemple, la version suivante affiche un message à chaque ouverture du classeur. Cela devient agaçant au bout d'un moment.

Une procédure Workbook_Open peut presque tout faire. Ces gestionnaires d'événements sont souvent utilisés pour les éléments suivants :

  • Affichage des messages de bienvenue (comme dans le classeur cool de Frank)
  • Ouvrir d'autres classeurs
  • Activation d'une feuille de calcul particulière dans le classeur
  • Configuration de menus contextuels personnalisés

Voici un dernier exemple Excel VBA d'une procédure Workbook_Open qui utilise les fonctions GetSetting et SaveSetting pour garder une trace du nombre d'ouvertures du classeur. La fonction SaveSetting écrit une valeur dans le registre Windows et la fonction GetSetting récupère cette valeur (voir le système d'aide pour plus de détails). L'exemple Excel VBA suivant récupère le nombre du Registre, l'incrémente, puis le réenregistre dans le Registre. Il indique également à l'utilisateur la valeur de Cnt qui correspond au nombre de fois que le classeur a été ouvert.

Sous-classeur privé_Open()
  Dim Cnt As Long
  Cnt = GetSetting("MonApp", "Paramètres", "Ouvrir", 0)
  Cnt = Cnt + 1
  SaveSetting "MyApp", "Paramètres", "Ouvrir", Cnt
  MsgBox "Ce classeur a été ouvert " & Cnt & " fois."
Fin du sous-marin

Exemples Excel VBA : exemples d'événements d'introduction

Utilisation d'un gestionnaire d'événements Workbook_Open pour suivre le nombre de fois qu'un classeur a été ouvert.

Exemple Excel VBA : l'événement BeforeClose pour un classeur

Voici un exemple de la procédure de gestionnaire d'événements Excel VBA Workbook_BeforeClose, qui est exécutée automatiquement juste avant la fermeture du classeur. Cette procédure se trouve dans la fenêtre Code d'un objet ThisWorkbook :

Private Sub Workbook_BeforeClose (Annuler en tant que booléen)
  Dim Msg en tant que chaîne
  Dim Ans aussi longtemps
  Dim FName en tant que chaîne
  Msg = "Voulez-vous faire une sauvegarde de ce fichier ?"
  Rép = MsgBox(Msg, vbOuiNon)
  Si Rép = vbOui Alors
    FName = "F:\BACKUP\" & ThisWorkbook.Name
    ThisWorkbook.SaveCopyAs FName
  Fin si
Fin du sous-marin

This routine uses a message box to ask the user whether he would like to make a backup copy of the workbook. If the answer is yes, the code uses the SaveCopyAs method to save a backup copy of the file on drive F. If you adapt this procedure for your own use, you need to change the drive and path.

Excel programmers often use a Workbook_BeforeClose procedure to clean up after themselves. For example, if you use a Workbook_Open procedure to change some settings when you open a workbook (hiding the status bar, for example), it’s only appropriate that you return the settings to their original state when you close the workbook. You can perform this electronic housekeeping with a Workbook_BeforeClose procedure.

Lorsque vous utilisez l'événement Workbook_BeforeClose, gardez ceci à l'esprit : si vous fermez Excel et qu'un fichier ouvert a été modifié depuis le dernier enregistrement, Excel affiche sa boîte de message habituelle « Voulez-vous enregistrer vos modifications ». Cliquer sur le bouton Annuler annule tout le processus de fermeture. Mais l'événement Workbook_BeforeClose aura quand même été exécuté.

Exemple Excel VBA : l'événement BeforeSave pour un classeur

L'événement BeforeSave, comme son nom l'indique, est déclenché avant l'enregistrement d'un classeur. Cet événement se produit lorsque vous choisissez Fichier → Enregistrer ou Fichier → Enregistrer sous.

La procédure suivante, qui est placée dans la fenêtre Code pour un objet ThisWorkbook, illustre l'événement BeforeSave. La routine met à jour la valeur dans une cellule (cellule A1 sur Sheet1) chaque fois que le classeur est enregistré. En d'autres termes, la cellule A1 sert de compteur pour garder une trace du nombre de fois où le fichier a été enregistré.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  En tant que booléen, Annuler en tant que booléen)
  Dim Counter As Range
  Set Counter = Sheets("Sheet1").Range("A1")
  Compteur.Valeur = Compteur.Valeur + 1
Fin du sous-marin

Notez que la procédure Workbook_BeforeSave a deux arguments : SaveAsUI et Cancel. Pour illustrer le fonctionnement de ces arguments, examinez la macro suivante, qui est exécutée avant l'enregistrement du classeur. Cette procédure tente d'empêcher l'utilisateur d'enregistrer le classeur sous un nom différent. Si l'utilisateur choisit Fichier → Enregistrer sous, l'argument SaveAsUI est True.

Lorsque le code s'exécute, il vérifie la valeur SaveAsUI. Si cette variable est True, la procédure affiche un message et définit Cancel sur True, ce qui annule l'opération Save.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI _
  En tant que booléen, Annuler en tant que booléen)
  Si SaveAsUI Alors
    MsgBox "Vous ne pouvez pas enregistrer une copie de ce classeur !"
  Annuler = Vrai
  Fin si
Fin du sous-marin

Notez que cette procédure n'empêchera pas vraiment quiconque d'enregistrer une copie avec un nom différent. Si quelqu'un veut vraiment le faire, il ou elle peut simplement ouvrir le classeur avec les macros désactivées. Lorsque les macros sont désactivées, les procédures de gestion d'événements sont également désactivées, ce qui est logique car ce sont, après tout, des macros.

Leave a Comment

Comment définir les options de vérification linguistique de Word 2010

Comment définir les options de vérification linguistique de Word 2010

Découvrez comment configurer les options de vérification linguistique dans Word 2010 pour améliorer votre rédaction et éviter les erreurs.

Comment utiliser la fonction CONFIANCE dans Excel

Comment utiliser la fonction CONFIANCE dans Excel

Découvrez comment utiliser les fonctions CONFIDENCE.NORM et CONFIDENCE.T dans Excel pour calculer des intervalles de confiance pour les moyennes de population, améliorant ainsi la prise de décision basée sur des données.

Formater les nombres en milliers et en millions dans les rapports Excel

Formater les nombres en milliers et en millions dans les rapports Excel

Améliorez la lisibilité de vos rapports Excel en formatant vos chiffres en milliers ou millions avec des astuces simples et efficaces pour votre audience.

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Apprenez comment personnaliser vos étiquettes de données dans Excel pour un meilleur rapport. Utilisez les valeurs de votre tableau croisé dynamique efficacement.

Comment créer une application Web Access

Comment créer une application Web Access

Découvrez comment créer une application Web dans Access 2016. Apprenez les étapes essentielles pour développer votre application en ligne facilement.

Comment utiliser les commentaires dans Microsoft Word 2019

Comment utiliser les commentaires dans Microsoft Word 2019

Découvrez comment ajouter, répondre, afficher et supprimer des <strong>commentaires dans Microsoft Word</strong> 2019 pour optimiser votre collaboration.

Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.