Excel - Enregistrement d'une macro

Décembre 2016

Enregistrement d'une macro


L'Enregistreur de macros Excel enregistre toutes vos actions au clavier ou avec la souris dans une macro. Lancez-le, effectuez la tâche à automatiser, puis arrêtez-le.
Avant de commencer l'enregistrement d'une macro, mieux vaut vous assurer que toutes les étapes de la tâche vous sont familières. Une bonne pratique consiste à les noter sur une feuille de papier, ou à les effectuer une première fois « à blanc » pour éviter toute surprise.
L'Enregistreur de macros enregistre toutes vos actions, y compris les fautes de frappe ou les erreurs. N'enregistrer que ce qui est nécessaire et sans erreur nécessite de bien connaître les différentes étapes à l'avance : il est nécessaire de s'intéresser toutefois aux paramètres liés à une macro, et surtout à la notion de macro absolue ou relative.

Macro absolue ou relative


Si vous sélectionnez une zone ou une cellule précise après avoir lancé l'enregistrement, la macro s'exécutera de même et appliquera vos instructions à ou à partir de cette cellule ou plage précise, sans modification possible : c'est une macro absolue. Procédez ainsi lorsque vous voulez absolument que la macro affecte la même cellule, comme placer une date dans la cellule A1.
Si vous sélectionnez la cellule ou plage avant de lancer la macro, le processus de sélection ne sera pas enregistré dans la macro et celle-ci s'exécutera sur ou à partir de la zone active, quelle qu'elle soit : c'est une macro relative. Les macros relatives sont beaucoup plus polyvalentes. Excel permet de créer des macros totalement relatives : si vous sélectionnez une plage au cours de l'enregistrement, celle-ci est référencée relativement par rapport à la cellule initialement active, contrairement à ce qui se passe dans une macro absolue (par défaut).
Pour enregistrer la macro relativement, cliquez sur le bouton Utiliser les références relatives, dans le groupe Code de l'onglet Développeur, avant de lancer l'enregistrement.

Lancement de l'enregistrement


Pour enregistrer une macro, procédez comme suit :
1.Dans le groupe Code de l'onglet Développeur, cliquez sur Enregistrer une macro. Cela ouvre la boîte de dialogue Enregistrer une macro.
2.Saisissez un nom dans la boîte Nom de la macro. Un nom de macro peut contenir des lettres, des chiffres, le caractère de soulignement, mais jamais d'espace. Il doit commencer par une lettre et sa longueur ne doit pas dépasser 64 caractères. Préférez des noms courts et évocateurs.
3.Sélectionnez l'emplacement de stockage pour la macro dans la zone de liste déroulante Enregistrer la macro dans (par défaut, une nouvelle macro est stockée dans le classeur courant).

A savoir : Emplacement de stockage de macro


En programmation objet tout (ou presque) est un objet. Un classeur est composé de différents objets : des feuilles de calcul et des feuilles de graphique, déjà rencontrées, et des modules. Tout classeur qui contient une procédure possède un objet Module contenant du code. L'ensemble des objets d'un classeur est souvent appelé projet. L'éditeur de macro (que nous allons examiner plus tard) affiche les projets et les objets qui leur sont associés. Quand vous enregistrez un classeur, vous enregistrez en réalité le projet qui contient tous les objets du classeur. Un module ressemble à un document de traitement de texte et se comporte comme lui. Il renferme les instructions qui composent les procédures.
Excel vous permet dans cette boîte de dialogue de stocker la macro dans un emplacement parmi trois :
Classeur de macros personnelles. C'est dans un module générique, accessible à tous les classeurs. C'est un classeur masqué qui s'ouvre automatiquement au lancement d'Excel, sans être toutefois visible (puisqu'il est masqué). Les procédures de ce module sont toujours accessibles à l'ouverture de tout classeur, quel qu'il soit.
Un nouveau classeur. Cette option, rarement employée, sert surtout lorsque la macro crée elle-même un nouveau classeur.
Ce classeur. C'est le choix par défaut, correspondant à un module du classeur actif. Une macro stockée dans un classeur ne peut être exécutée que lorsque ce classeur est ouvert.

A savoir : Classeur de macros personnelles


Le classeur de macros personnelles d'Excel est un fichier nommé Personal.xlsb. Sous Windows Vista, ce classeur est enregistré dans le dossier :
C:\Users\nom d'utilisateur\AppData\Local\Microsoft\Excel\XLStart
Sous Microsoft Windows XP, il est situé dans le dossier :
C:\Documents and Settings\nom d'utilisateur\Application Data\Microsoft\Excel\XLStart
Les classeurs présents dans le dossier XLStart s'ouvrent automatiquement au démarrage d'Excel.
4.Saisissez éventuellement dans la boîte Description un bref descriptif de l'action qu'exécute la macro.
5.Vous pouvez également affecter un raccourci clavier à la macro, en entrant la lettre à employer dans la boîte Touche de raccourci. Un raccourci clavier de macro prend le pas sur ceux du programme. Généralement, la plupart des combinaisons de touches Ctrl+lettre sont déjà affectées. Mieux vaut retenir Ctrl+Maj+lettre afin d'éviter toute confusion.
6.Cliquez sur OK pour fermer cette boîte de dialogue.


Dans la barre d'état le bouton Une macro est en cours d'enregistrement apparaît. Cliquez ici pour arrêter l'enregistrement.


Effectuez chronologiquement chacune des tâches qui doivent être enregistrées. Une fois les tâches accomplies, pour arrêter l'enregistrement, cliquez sur le bouton Arrêt de l'enregistrement ou sur Arrêter l'enregistrement dans le groupe Code de l'onglet Développeur.

Attention


Il est facile d'oublier qu'un enregistrement est en cours. Celui se poursuivant jusqu'à son arrêt explicite, il est capital que vous arrêtiez l'enregistrement dès que les tâches à enregistrer sont accomplies. Si vous avez oublié d'arrêter l'enregistrement d'une macro à temps, vous n'avez pas à tout enregistrer à nouveau : il suffira d'éditer la macro et de supprimer les actions superflues. Nous verrons comment procéder sous peu.

Exemple pratique : création d'une macro d'ajustement automatique d'une colonne


Vous allez créer ici une petite macro qui ajuste automatiquement la colonne active de la feuille de calcul active, puis sélectionne la cellule A1. Elle sera nommée AjustCol (ou tout autre nom de votre choix) et stockée dans le module générique afin d'être accessible depuis n'importe quel classeur.
1. Assurez-vous que la cellule A1 est visible à l'écran.
2. Lancez l'enregistrement d'une nouvelle macro, selon la procédure exposée ci-dessus.
3. Appuyez sur Ctrl+A pour sélectionner la totalité du tableau.
4. Dans le groupe Cellules de l'onglet Accueil, choisissez Format > Ajuster la largeur de colonne.
5. Sélectionnez la cellule A1 dans la feuille courante.
6. Arrêtez l'enregistrement de la macro.
Souvenez-vous que vous nommez la macro et choisissez son lieu de stockage avant le lancement de l'enregistrement.

Attention


Enregistrez toujours le classeur qui contient une macro avant de la tester. Si elle contient des erreurs, vous risqueriez en effet de perdre des données lors de son exécution. Si vous constatez une perte de données après l'exécution, fermez le classeur sans l'enregistrer, puis rouvrez-le, ce qui restaurera les données d'origine.
7. Testez maintenant la nouvelle macro. Saisissez dans une colonne quelconque un texte ou chiffre excédant sa largeur, puis sélectionnez dans le groupe Code de l'onglet Développeur l'option Macros. Sélectionnez la macro concernée dans la liste.
8. Cliquez sur Exécuter : toutes les colonnes s'ajustent automatiquement, et le texte ou le nombre que vous aviez saisi s'affiche maintenant dans son intégralité.


Le texte original de cette fiche pratique est extrait de
«Tout pour bien utiliser Excel 2010» (Fabrice LEMAINQUE, Collection CommentCaMarche.net, Dunod, 2010)

A voir également :

Ce document intitulé «  Excel - Enregistrement d'une macro  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.