Macros-commandes VBA/Enregistreur

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Enregistreur
Icône de la faculté
Chapitre no 7
Leçon : Macros-commandes VBA
Chap. préc. :Conditionnelles et boucles
Chap. suiv. :Boite de dialogue
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Macros-commandes VBA : Enregistreur
Macros-commandes VBA/Enregistreur
 », n'a pu être restituée correctement ci-dessus.

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)


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 ?"


Enregistrer une macro[modifier | modifier le wikicode]

Pour démarrer l’enregistreur, suivez les différentes étapes :

  1. Aller sur l’onglet développeur
  2. 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 :
    1. Nom de la macro
    2. Touche de raccourci
    3. Enregistrer la macro dans
    4. Description
    5. Valider avec OK
  3. Effectuer toutes les actions que vous voulez sur votre classeur EXCEL
  4. Retourner sur l’onglet développeur
  5. Dans la partie Code, cliquez sur Arrêter l'enregistrement


Graissage automatique


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.
Début de l'exemple
Fin de l'exemple


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, ...)


Début de l'exemple
Fin de l'exemple


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)
Début de l'exemple
Fin de l'exemple


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

Début de l'exemple
Fin de l'exemple


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


Un outil facile pour l’utilisation des macros => l’assistant Macros[modifier | modifier le wikicode]


Assistant de graissage automatique


Pour démarrer l’assistant, suivez les étapes suivantes :

  1. Allez sur l’onglet développeur
  2. Dans la partie Code, cliquez sur Macros, la boîte de dialogue "Macro" s’ouvre avec les objets suivants :
    1. la macro sélectionnée
    2. une liste de toutes les macros exécutables
    3. une suite de boutons de commandes
    4. le lieu de stockage de la macro sélectionnée
    5. la description de la macro sélectionnée
  3. Cliquez sur le bouton de votre choix
Début de l'exemple
Fin de l'exemple


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]


Graissage et soulignement automatiques


Dans le cas présent, il s'agit juste de changement d'affichage sur la police de caractère

Début de l'exemple
Fin de l'exemple


Dans le cas présent, l'enregistreur magique a enregistré ceci dans l'environnement VBE

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]

Liens externes[modifier | modifier le wikicode]