Macros-commandes VBA/Enregistreur
Un outil magique pour l'apprentissage
[modifier | modifier le wikicode]Le principe de l'enregistreur de macros est de créer une procédure VBA sans avoir la moindre connaissance du langage. Après avoir saisi quelques paramètres (nom, raccourci, localité, commentaire) vous pouvez démarrer l'enregistrement d'une macro, toutes les actions que vous réalisez sur le(s) classeur(s) sont traduites en instructions dans le langage VBA. À la fin de la séquence, il vous faut arrêter l'enregistrement de la macro. Lorsque vous rappellerez cette macro enregistrée par le nom que vous lui avez donné, Excel exécutera de nouveau toutes les actions que vous avez effectuées lors de l'enregistrement.
L'enregistreur trouve son intérêt dans deux circonstances :
- Vous êtes développeurs de macros débutant et ne connaissez pas toutes les instructions du langage VBA
- Vous souhaitez créer une macro immédiatement effective grâce au logiciel Excel seul sans passer par la fenêtre d'édition de macros VBE (Visual Basic Environment)
La majorité des débutants VBA passe d’abord par l'enregistreur, puis complète ou supprime les lignes générées. Avec le temps et la maitrise, la majorité des utilisateurs VBA arrive à coder directement une macro sans passer par l'enregistreur. En d'autres termes, coder une macro directement en VBA n’est pas à la portée de tous les utilisateurs, il faut un minimum de connaissances de vocabulaire, de mots-clés et d'objets pour pouvoir le faire.
Avant de vous lancer dans l'enregistrement automatique d’une macro, il est judicieux de dégager le réel intérêt de la macro, en se poser quelques questions :
- "Comment la nommer, comment la déclencher ?"
- "Est-ce qu'elle peut être utilisée par d'autres classeurs ?"
- "Quel va être le but de ma macro, à quoi va t-elle servir ?"
Les exemples de cette leçon sont relativement simples, l’utilité de certaines macros peut sembler discutable, mais il faut acquérir une base solide de connaissances avant de s'attaquer à la création de macros plus utiles et donc plus complexes. Comme en mathématiques, seul un entraînement régulier et répétitif sur des macros simples, voire simplistes, vous permettra d'atteindre le niveau requis pour la création de macros professionnelles
Enregistrer une macro
[modifier | modifier le wikicode]Pour démarrer l’enregistreur, suivez les différentes étapes :
- Aller sur l’onglet développeur
- Dans la partie Code, cliquez sur Enregistrer une macro, la boîte de dialogue "Enregistrer une macro" s’ouvre, un formulaire s'affiche avec les champs suivants :
- Nom de la macro
- Touche de raccourci
- Enregistrer la macro dans
- Description
- Valider avec OK
- Effectuer toutes les actions que vous voulez sur votre classeur EXCEL
- Retourner sur l’onglet développeur
- Dans la partie Code, cliquez sur Arrêter l'enregistrement
Donner un nom à la macro
[modifier | modifier le wikicode]Le nom d’une macro est soumis à quelques règles :
- Le nom doit commencer par une lettre et doit correspondre à ce que fait la macro
- Le nombre de caractères maximal que peut contenir le nom de la macro est de 80 caractères (Lettres et chiffres exclusivement)
- Dans le cas où le bouton « OK » reste grisé, cela signifierait que le nom saisi est incorrect.
Si vous réalisez une macro qui graisse la police de caractère des cellules sélectionnées, vous pouvez la nommer mGraisserSelection
Associer une combinaison de touches à la macro
[modifier | modifier le wikicode]Une combinaison de touches qui vous permettra d’activer directement la macro, cette combinaison est soumise aussi à quelques règles :
- La touche CTRL est toujours retenue, vous pouvez la compléter par une autre lettre : CTRL/N
- Pour ne pas interférer avec les combinaisons de touches standard EXCEL, il est plutôt conseillé d’utiliser aussi la touche MAJ : CTRL/MAJ/N
- La combinaison de touches n’est pas obligatoire (option recommandée), d'autres méthodes de lancement de la macro sont plus efficaces (bouton, appel automatique, formulaire, ...)
Si vous réalisez une macro qui graisse la police de caractère des cellules sélectionnées, vous pouvez lier votre macro à la combinaison CTRL + MAJ + G
Choisir le lieu de stockage de la macro
[modifier | modifier le wikicode]Ici, Excel vous propose d’enregistrer la macro dans :
- Ce classeur : Si vous voulez que la macro ne soit effective que sur le classeur que vous utilisez (option recommandée)
- Nouveau classeur : La macro sera enregistrée sur un nouveau classeur
- Classeur de macros personnelles : la macro sera accessibles à partir de tous les classeurs EXCEL de votre poste de travail (à n’utiliser que si vous êtes sur de la fiabilité de votre macro), la macro est alors enregistrée sur le fichier de macros personnelles : perso.xls (fichier de paramètre caché d’Excel)
Si vous réalisez une macro qui graisse la police de caractère des cellules sélectionnées, il est recommandé de stocker votre macro dans Ce classeur
Commenter la macro
[modifier | modifier le wikicode]Il est indispensable de saisir une description concise à chaque création de macro, cela vous permettra de savoir exactement ce que votre macro fait quand vous voudrez l’utiliser de nouveau
Si vous réalisez une macro qui graisse la sélection, vous pouvez lui donner la description : Cette macro graisse les polices de toutes les cellules sélectionnées
Code VBA généré après l'enregistrement des actions
[modifier | modifier le wikicode]Après avoir effectué toutes les actions EXCEL reproductibles puis arrêté l’enregistrement, la suite d’instructions suivante affectée à la macro est accessible dans l'environnement VBE
Sub mGraisserSelection()
'
' mGraisserSelection Macro
' Cette macro graisse les polices de toutes les cellules sélectionnées
'
' Touche de raccourci du clavier: Ctrl+Shift+G
'
Selection.Font.Bold = True
End Sub
Préparer à l'avance les commandes à enregistrer afin de ne pas créer du code VBA automatique inutile
Un outil facile pour l’utilisation des macros => l’assistant Macros
[modifier | modifier le wikicode]
Pour démarrer l’assistant, suivez les étapes suivantes :
- Allez sur l’onglet développeur
- Dans la partie Code, cliquez sur Macros, la boîte de dialogue "Macro" s’ouvre avec les objets suivants :
- la macro sélectionnée
- une liste de toutes les macros exécutables
- une suite de boutons de commandes
- le lieu de stockage de la macro sélectionnée
- la description de la macro sélectionnée
- Cliquez sur le bouton de votre choix
- Exécuter : permet de lancer en un seul jet toutes les commandes enregistrées de la macro, ce processus représente l'une des utilisations standard des macros
- Pas à pas : permet de lancer les commandes enregistrées de la macro avec un arrêt après chaque instruction, ce processus est extrêmement utile lors de phases de mise au point ou de réparation des macros-commandes
- Modifier : permet d'afficher la fenêtre d'édition VBE afin de visualiser et/ou de modifier des lignes d'instruction
- Créer : permet d'afficher la fenêtre d'édition VBE afin de créer une nouvelle macro par une saisie directe des lignes d'instructions de code VBA
- Supprimer : permet de supprimer une macro devenue inutile
- Options : permet de visualiser et modifier les propriétés générales de la macro (nom, raccourci, description)
Les avantages et les inconvénients de l'enregistreur
[modifier | modifier le wikicode]Les avantages
[modifier | modifier le wikicode]- Méthode simple ne nécessitant pas une connaissance parfaite de la syntaxe du code VBA et des objets EXCEL
- Simplicité d'utilisation (principe de magnétophone qui enregistre toutes les actions pendant un temps donné)
- Apprentissage rapide de la syntaxe du code VBA et des objets EXCEL (grâce au codage VBA automatique du magnétophone)
- Apprentissage de la programmation VBA cohérente et utilisable sur toutes les applications d'office
Les inconvénients
[modifier | modifier le wikicode]- L'enregistreur de macro-commandes ne traduit que les opérations réalisées par l'utilisateur, il ne résout pas lui-même tous les besoins de programmation (boucles, conditions, ...) ceci implique des actions complémentaires à coder dans l'environnement VBE
- L'enregistreur de macro-commandes est parfois prolixe, voire trop bavard, il lui arrive d'écrire plus de lignes de code VBA que ce qu’il n'en faudrait
- Les programmes VBA sont sujets comme tout logiciel aux erreurs (bogues) qui peuvent entrainer des dysfonctionnements de l’application hôte
- Les macros VBA ne peuvent être utilisées sans l’application sous laquelle elles sont développées
Cas pratique
[modifier | modifier le wikicode]
Dans le cas présent, il s'agit juste de changement d'affichage sur la police de caractère
Voici l'énoncé :
- Créer une nouvelle macro-commande : Actionner le bouton nouvelle macro
- Nommer la macro mGraisserEtSouligner, la commenter
- Démarrer le magnétophone : Actionner le bouton d'enregistrement
- Enregistrer vos actions : Sur la feuille Excel graisser et souligner la cellule sélectionnée
- Arrêter le magnétophone : Actionner le bouton de fin d'enregistrement
Dans le cas présent, l'enregistreur magique a enregistré ceci dans l'environnement VBE
Sub mGraisserEtSouligner()
'
' mGraisserEtSouligner Macro
' Cette macro graisse et souligne la sélection en cours
'
Selection.Font.Bold = True
Selection.Font.Underline = xlUnderlineStyleSingle
End Sub
Annexes
[modifier | modifier le wikicode]Bibliographie
[modifier | modifier le wikicode]- Amelot M., 2011, VBA Excel 2010, ENI, St Herblain
- Bidault M., 2000, Excel et VBA, CAMPUS, Paris
Liens internes
[modifier | modifier le wikicode]- Format Euro : exercice de création de macro via l'enregistreur
- Leçon VISUAL BASIC
- Leçon Tableur EXCEL
Liens externes
[modifier | modifier le wikicode]