Création de sa toute première macro grâce à l'enregistreur

Dans cette première leçon, nous allons enregistrer une macro avec l'enregistreur de macros. Le principe est élémentaire, on va simplement demander à VBA de nous regarder travailler. Il va se contenter de refaire ce que nous avons fait devant ses yeux. Ni plus, ni moins !

Attenntion : Ce didacticiel a été créé avec Excel 2003. A partir de la version Excel 2007, les classeurs qui contiennent des macros doivent être enregistrées avec l'extension .xlsm et pas xlsx.

Avant de commencer quoi que ce soit, je vous conseille, pour des raisons pratiques, de créer un classeur Excel Appelé Cours.XLS, composé d'une seule feuille, dans un dossier que vous créerez exprès pour ça. Par exemple "Cours Excel VBA", comme ceci : une fois dans Excel, supprimez toutes les feuilles de votre classeur sauf une , allet allez dans le menu Fichier/Enregistrer sous :

A partir de maintenant, vous êtes l'heureux propriétaire d'un classeur Excel tout vide, appelé Cours.XLS. Vous suivrez ainsi les leçons dans ce classeur dédié.

Comment commencer ?
Arrêter l'enregistrement d'une macro
Exécution d'une macro enregistrée
Affichage manuel de la barre d'outils d'arrêt de l'enregistrement

Résumé de la leçon
Avez-vous bien compris ?
Exercice

Comment commencer ?

Vous devez donc être dans Excel, dans votre Cours.XLS. Cliquez sur la cellule B2 (c'est important pour la suite).

Allez dans le menu Outils/Macros/Nouvelle Macro.

Comme nom de la macro, vous indiquez ce que vous voulez (ici érivons : PremiereMacro). Sachez toutefois que les espaces sont interdits. Les caractères accentués sont déconseillés. Les majuscules et les minuscules ne sont pas importantes. J'ai mis une majuscule au début de chaque mot pour une unique question de lisibilité.

Il est très important d'enregistrer la macro dans "Ce classeur"

Cliquez sur OK.

Attention : à partir de maintenant, c'est comme si vous veniez d'entrer dans un studio d'enregistrement alors que quelqu'un chante. C'est à dire que TOUT ce que vous allez dire sera enregistré par le micro. Ici, le simple clic dans une autre cellule sera enregistré. Donc vous ne faites RIEN.

Ecrivez Bonjour dans la cellule dans laquelle vous êtes, c'est à dire B2.

Appuyez sur la touche Entrée de votre clavier, pour valider, ce qui vous placera automatiquement sur la cellule B3 :.

Arrêter l'enregistrement d'une macro

A présent, arrêtons la macro. Pour ce faire, au milieu de votre écran devrait se trouver une petite barre d'outils. Cliquez sur l'icone de gauche (le carré bleu) :

Il se peut que cette barre d'outils ne se trouve pas au milieu de l'écran, mais intégrée à vos autres barres d'outils.

Regardez bien votre écran de tous les côtés pour débusquer cette coquine barre d'outils. Il est possible également, pour des raisons que j'ignore, que cette barre d'outils n'apparaisse pas. Ce n'est pas grave. Si vous ne la voyez décidément pas, pour arrêter la macro, allez dans le menu : Outils/Macros/Arrêter l'enregistrement.

Il est évidemment primordial d'arrêter l'enregistrement d'une macro, une fois celle ci terminée. En effet, une erreur courante consiste à commencer l'enegistrement d'une macro, et oublier ensuite qu'on était en train d'enregistrer, et continuer à travailler tranquillement. Le pauvre VBA, pendant ce temps là, croit qu'il doit continuer à enregistrer tout ce que vous faites, et enregistre, et enregistre encore, jusqu'à la nausée, c'est à dire jusqu'à ce qu'il provoque une erreur.

Félicitations ! Vous êtes maintenant l'heureux propriétaire de votre première Macro.

Dans un but de simplicité, et pour être bien certain que tout le monde aie le même écran, et surtout cette barre d'outils, je vous propose de faire apparaître une fois pour toutes cette fameuse barre d'outils.

Une fois que vous faites apparaître la barre d'outils "manuellement", elle ne disparaîtra plus automatiquement à la fin de l'enregistrement de la macro

Affichage manuel de la barre d'outils d'arrêt de l'enregistrement

Marche à suivre :

Allez dans le menu Affichage/Barres d'outils. Cherchez la barre nommée "Arrêt de l'enregistrement". Vous constatez qu'elle ne s'y trouve pas. En effet, Microsoft n'a pas jugé utilise de mettre toutes les barres d'outils à disposition dans ce menu. Cliquez sur Personnaliser.

Cochez la case "Arrêter l'enregistrement" qui cette fois apparait, et fermez.

La petite barre d'outils apparait maintenant au beau milieu de votre feuille de calcul. Prenez-là avec la souris, et faites la glisser jusqu'au bord gauche de votre écran pour l'intégrer verticatement, comme ceci :

  

Faisons maintenant fonctionner cette première macro !

Exécution d'une macro enregistrée

Cliquez dans une autre cellule, disons C4.

Allez dans le menu Outils/Macros/Macros. Vous voyez alors la liste de toutes les macros disponibles. Enfin... pour l'instant, nous n'avons qu'une macro à disposition : PremiereMacro.

Si toutefois d'autres macros apparaissent, faites simplement comme si elles n'étaient pas là. Vous apprendrez comment elles ont bien pu atterir là dans la suite du cours.

Cliquez dessus, et cliquez sur Exécuter :

Voilà : la macro que vous aviez enregistrée vient de s'exécuter. C'est à dire qu'elle a écrit Bonjour dans la cellule C4 :

Si vous cliquez dans une autre cellule, quelle qu'elle soit, et que vous appuyez sur ALT-F8 (C'est le raccourci-clavier pour aller dans le menu Outils/Macros/Macros), et que vous double-cliquez sur votre macro PremiereMacro, (le double clic est plus simple que de cliquer sur Exécuter), le mot bonjour apparaîtra dans la cellule dans laquelle vous êtes.

J'ai parlé du raccourci-clavier ALT F8. Ce raccourci est indiqué directement sur le menu :

Normalement, le sous-menu Macro est situé plus bas dans le menu Outils, mais pour des raisons de commodité, je l'ai déplacé tout en haut.

Tous les raccourcis-clavier qui ont un rapport quelconque avec l'utilisation de VBA sont indiqués ici.

Une macro est un programme écrit avec un langage de programmation. Ici, il s'agit de Visual Basic, et très exactemenbt de VBA (Visual Basic pour applications. Le programme de cette leçon consistait uniquement à écrire Bonjour dans une cellule. Pour enregistrer une nouvelle macro, c'est le menu Outils/Macros/Nouvelle Macro qui s'en charge. Ensuite, pour exécuter la macro, il faut la sélectionner dans la liste des macros disponible avec le menu Outils/Macros : Macros.

1. Quel est raccourci-clavier permet de créer une nouvelle macro avec l'enregistreur ?


F8
CTRL F8
CTRL ALT F8
Il n'y a pas de raccourci clavier prévu

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 182

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 182

Warning: Undefined variable $Q1 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 183

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 183

2. Les espaces dans les noms de macro sont


Déconseillés
Autorisés
Obligatoires

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 209

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 209

Warning: Undefined variable $Q2 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 210

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 210

3. On peut arrêter une macro grâce au menu


Outils/Macros/Arrêter l'enregistrement
Outils/Arrêter l'enregistrement
Il n'y a pas de menu permettant d'arrêter l'enregistrement d'une macro

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 235

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 235

Warning: Undefined variable $Q3 in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 236

Deprecated: strspn(): Passing null to parameter #2 ($characters) of type string is deprecated in /home/clients/a41d66f74bcbcbdeacff232fbcd0dcfe/web/vbvba/cours/lecon001/lecon001.php on line 236

Enregistrez une macro qui écrit votre prénom en rouge sur fond jaune. Appelez cette macro EcrirePrenom. L'exercice est réussi quand vous vous placez sur une cellule quelconque, et que vous allez dans le menu Outils/Macros/Macros, vous avez dans la liste des macros EcrirePrenom. Si vous double cliquez dessus, il doit écrire votre prénom en rouge sur fond jaune dans la cellule dans laquelle vous vous trouvez.

A la fin de chaque leçon, vous aurez la possibilité de télécharger l'exercice. Mais si vous cliquez simplement sur le lien "Téléchargez la solution ici", il est possible qu'il ne vous propose pas simplement d'enregistrer le fichier, mais qu'il l'ouvre directement dans votre navigateur internet. C'est un peu bizarre, car vous avez l'impression d'être dans Excel, mais en même temps dans votre navigateur, comme ceci :

Pour éviter cela, cliquez avec le bouton droit de votre souris sur le lien, et choisissez "Enregistrer la cible sous" :

Et enregistrez votre solution en lieu sûr, par exemple dans le dossier "Mes Documents", afin de pouvoir l'ouvrir ensuite avec Excel normal.
Vous allez pouvoir vérifier tout de suite si vous avez bien compris : Téléchargez la solution ici (Contient l'exercice et la leçon actuelle)

---