« Macros-commandes VBA/Procédures et événements automatiques » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (- c'est + c’est )
m Robot : Remplacement de texte automatisé (- l'objet + l’objet )
Ligne 33 :
Un événement est toujours associé à un objet ou à une collection d'objets spécifique. Nous avons défini une procédure événementielle de niveau "feuille de calcul", attachée à la première feuille du classeur. Si nous voulions que cette procédure se déclenche quand l'utilisateur sélectionne de nouvelles cellules dans n’importe quelle feuille du classeur, il faudrait créer une procédure événementielle de niveau "classeur", s'appliquant à l'ensemble de ses feuilles.
 
La feuille de calcul représente ici l'objetl’objet associé à la procédure événementielle. Il peut s'agir soit d'un objet existant, créé par l'utilisateur, soit d'un objet créé par programmation.
 
Sous Excel, il existe cinq types principaux d'objets associés.
Ligne 67 :
# Identifiez l'événement qui doit déclencher la procédure.
# Appuyez sur Alt+F11 pour activer l'éditeur VBE.
# Dans la fenêtre Projet de l'éditeur VBE, double-cliquez sur l'objetl’objet approprié listé sous l'intitulé Microsoft Excel Objects. Pour un événement lié au classeur, l'objetl’objet est ThisWorkbook. Pour un événement lié à la feuille de calcul, l'objetl’objet est un objet de type WorkSheet (comme Feuil1).
# Dans la fenêtre Code de l'objet, écrivez la procédure d'événement qui devra être exécutée lorsque ledit événement se produira. Cette procédure aura un nom spécial qui l'identifie en tant que procédure d'événement.
Ces étapes vous paraîtrons plus claires en progressant dans cette leçon.
Ligne 89 :
.
 
Lors de l'écriture d'une procédure d'événement l'éditeur VBE vous vient en aide en affichant la liste de tous les événements disponibles pour l'objetl’objet sélectionné.
 
Quand vous sélectionnez un événement dans la liste de droite, l'éditeur VBE crée automatiquement une procédure d'événement à votre place. C'est tout à fait pratique, puisque vous savez immédiatement quels sont les arguments éventuels à fournir.
Ligne 196 :
 
=== Workbook_BeforeClose ===
Voyons maintenant la procédure d'événement BeforeClose. Exécutée juste avant que le classeur se ferme, elle est localisée dans la fenêtre code de l'objetl’objet ThisWorkbook. Par exemple :
<source lang=vb>
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Ligne 285 :
 
=== Worksheet_Activate ===
Excel peut détecter si une feuille est activée ou désactivée et exécuter une macro lorsque l'un ou l'autre de ces événements se produit. Ces procédures d'événement doivent être placées dans la fenêtre Code de l'objetl’objet Feuil.
Pour accéder rapidement à la fenêtre de code d'une feuille, cliquez droit sur l'onglet de celle-ci et choisissez la commande Visualiser le code.
L'exemple qui suit montre une procédure simple qui est exécutée chaque fois qu'un feuille donnée est activée. Elle ouvre une boîte de message qui affiche le nom de la feuille active :
Ligne 304 :
 
Ces exemples sont très élémentaires, mais une procédure d'événement peut être beaucoup plus complexe.
La procédure qui suit - stockée dans la fenêtre Code de l'objetl’objet Feuil1 - utilise l'événement Deactivate pour empêcher l'utilisateur d'activer toute autre feuille du classeur. Lorsque Feuil1 est désactivée (c'est à dire qu'une autre feuille est activée), un message est affiché puis Feuil1 est de nouveau activé :
 
<source lang=vb>
Ligne 316 :
 
=== Worksheet_Change ===
Un événement Change se produit chaque fois qu'un cellule de la feuille de calcul est modifiée. Dans l'exemple qui suit, la procédure Worksheet_Change empêche effectivement un utilisateur d'entrer une valeur non numérique dans la cellule A1. Ce listing est stocké dans la fenêtre Code de l'objetl’objet Feuil.
 
<source lang=vb>