Leçon 1 – macros, VBA : quelles différences ?

Macros, VBA… Pour beaucoup de néophytes, ces expressions sont similaires. Pourtant, elles recouvrent des différences bien réelles, notamment en matière de complexité et d’interaction avec l’utilisateur…

Toutes deux toutefois sont destinées à automatiser des tâches répétitives.

 

Macro
Programmation vba
Définition La macro consiste à enregistrer une série d’actions faites par un utilisateur. L’utilisateur ne rédige aucun code. L’enregistreur de macro se charge de tout. Le VBA (visual basic pour applications) est un langage de programmation destiné aux débutants. Le programme est rédigé de manière séquentielle par le développeur.
Interaction avec l’utilisateur Aucune : la macro restituera les manipulations enregistrées, sans aucune possibilité de modification. Totale : c’est l’utilisateur qui interagit par le biais de boîtes de dialogue affichées par le programme.
Type de programme Linéaire : la macro est exécutée dans son intégralité, depuis le début jusqu’à la fin, sans interruption ou changement. Événementielle : le programme évolue en fonction des choix de l’utilisateur (clic sur un bouton, sélection dans une liste, valeur saisie au clavier…)
Difficulté de mise en oeuvre Très facile Complexe
Compétences requises Aucune Logique, rigueur, patience.
Notions d’anglais souhaitables.

Dans la pratique, la macro est peu souvent utilisée en raison de ses limites. L’enregistreur de macros s’avère en revanche particulièrement judicieux pour simplifier l’écriture d’un programme VBA. Son utilisation permet alors de garantir la bonne syntaxe du code. Et un gain de temps appréciable…

Votre première macro

Même s’il est possible d’accéder aux macros par le biais du ruban Affichage, il est plus confortable, d’utiliser l’onglet Développeur. Si ce dernier n’est pas installé sur votre ruban, activez le menu FichierOptionsPersonnaliser le ruban, et cochez la case Développeur dans la partie droite de votre écran.

Pour ce premier exercice, nous allons concevoir une macro qui appellera un modèle de document sous Word ou Excel.

Pour ce tutoriel, vous avez donc besoin d’un modèle quelconque de document enregistré dans le répertoire Modèles d’Office. Au pire, sauvegardez un document vide avec l’extension .dotm. ou .xlxm.

macroA présent, commençons !

Dans l’onglet Développeur, sélectionnez l’icône Enregistrer une macro.

Suivant que vous utilisez Word ou Excel, la boîte de dialogue suivante varie quelque peu :

Boite Enregistrer une macro Word

macro2

Dans la zone Nom de la macro (1), saisissez un nom pour votre macro. Celui-ci ne doit pas comporter d’accent, ni d’espace.

Word vous permet ensuite d’affecter la macro en cours à un bouton (ruban ou barre d’accès rapide) ou encore à un raccourci clavier (2). Ces 2 propositions sont optionnelles. Vous pouvez n’en choisir aucune.

Word vous propose ensuite d’enregistrer votre macro dans normal.dotm (3), ce qui rendra la macro accessible sous n’importe quel document Word (fortement recommandé), ou dans Document1. Si vous sélectionnez cette option, la macro ne fonctionnera que dans le document en cours de création.

Ensuite, vous pouvez, dans le champ Description, saisir quelques lignes pour expliquer l’objet de votre macro. Ce champ est optionnel.

Boite Enregistrer une macro Excel

macro3

Dans la zone Nom de la macro (1), saisissez un nom pour votre macro. Celui-ci ne doit pas comporter d’accent, ni d’espace.

Il vous est ensuite proposé d’affecter la macro en cours à  un raccourci clavier (2). Même si, a priori, Excel, contrairement à Word, ne permet pas d’affecter une macro à une icône, cela est tout à fait envisageable et sera développé dans un article ultérieur, Personnaliser votre interface Office. Le champ Touche de raccourci est optionnel.

Excel vous propose ensuite d’enregistrer votre macro dans le classeur de macros personnelles (3), ce qui rendra la macro accessible sous n’importe quel document Excel (fortement recommandé). Vous pouvez tout aussi bien enregistrer la macro dans un Nouveau classeur ou Ce classeur mais dans ces deux cas, attention : vous ne pourrez utiliser votre macro que dans le document où elle aura été créée.

Enfin, vous pouvez, dans le champ Description, saisir quelques lignes pour expliquer l’objet de votre macro. Ce champ est optionnel.

Après avoir complété votre boîte de dialogue, et validé, le bouton Démarrer l’enregistrement est modifié en Arrêter l’enregistrement et le bouton Suspendre l’enregistrement devient accessible.

Ouvrez alors le modèle de document que vous souhaitez. Il s’affiche à l’écran. Cliquez sur Arrêter l’enregistrement.Votre macro est à présent terminée.

Bien sûr l’intérêt de cette macro est plus que limité… mais vous savez à présent utiliser l’enregistreur de macro. Passons à présent à la vitesse supérieure !

L’interface VBA

Je vous invite à présent à découvrir et paramétrer l’interface de l’éditeur VBA.

Pour accéder à ce dernier, appuyez sur Alt F11 ou activez l’onglet Développeur et cliquez sur l’icône Visual Basic,

Une nouvelle interface apparaît, dans un onglet séparé de votre barre des tâches.

macro4
L’éditeur Visual Basic est scindé en 2 zones :

  • A gauche, la zone Projet. Y figurent la liste des documents ouverts (ici, Normal.dotm, Document1 et Document2).
  • A droite, la zone de code.

Si vous avez enregistré votre macro dans Normal.dotm (Word) ou dans le classeur de macros personnelles (Excel), procédez comme suit pour afficher le code de votre macro :

  • Sous Word, localisez Normal dans la zone projet et déroulez l’arborescence.
  • Déroulez ensuite Modules : votre macro devrait figurer dans ce répertoire.
  • Cliquez sur votre macro pour afficher le contenu dans la fenêtre de droite.
  • Sous Excel, localisez Personal.xlsb et déroulez l’arborescence.
  • Déroulez ensuite Modules : votre macro devrait figurer dans ce répertoire.
  • Ccliquez sur votre macro pour afficher le contenu dans la fenêtre de droite.

Votre macro se présente peu ou prou comme sur l’illustration ci-dessus.

Un programme VBA démarre (quasi) toujours par l’instruction Sub (1) suivi du nom de votre macro et de () et se termine par l’instruction End Sub (4)
Les lignes vertes (2) commençant par un apostrophe indiquent un commentaire (ici la description de votre macro si vous avez pris la peine de renseigner ce champ ou un texte par défaut, dans le cas contraire).

Vient ensuite le code (3). Vous noterez la présence en fin de ligne du signe _ . Il indique simplement que l’instruction a été coupée et se poursuit sur la ligne suivante. Il équivaut à un « trait d’union » pour un texte classique…

Vous noterez que les instructions sont rédigées en anglais :

Documents.Add Template:= « C:\Users\Nadège Guilbert\Documents\Modèles Office personnalisés\avec macros\telecopie.docm », NewTemplate:=False, DocumentType:=0

Bien sûr, ce code vous parait encore hermétique et c’est normal. Mais rassurez-vous : le visual basic est comme une langue étrangère : il se maîtrise progressivement !

Nadège GUILBERT

Conceptrice, animatrice du site www.top-assistante.com

Les commentaires sont fermés.

  • Top-Assistante est une marque déposée à l'INPI. Aucune reproduction sans le consentement écrit de l'auteur