Enregistreur de macros
L'enregistreur de macros convertit automatiquement tes actions dans Excel en code VBA, permettant de créer une macro sans écrire une seule ligne de code. Tu le lances via Développeur > Enregistrer une macro (ou la barre d'état). C'est le meilleur point de départ pour apprendre le VBA : enregistre une action, lis le code généré, puis adapte-le.
À quoi sert un enregistreur de macros dans Excel ?
L'enregistreur de macros te permet de créer une automatisation dans Excel sans écrire une seule ligne de code. Tu cliques sur Enregistrer, tu effectues tes manipulations normalement (mises en forme, copier-coller, insertions, suppressions), tu arrêtes l'enregistrement, et Excel a traduit toutes tes actions en code VBA. Ta macro est prête à être rejouée autant de fois que tu veux.
Tu vas l'utiliser pour automatiser toute tâche répétitive que tu fais manuellement : reformater un fichier qui arrive toujours dans le même format, appliquer une série de mises en forme à un rapport, copier des données d'un onglet vers un autre selon un modèle fixe, ou préparer un fichier d'export dans un format spécifique. C'est aussi le meilleur outil d'apprentissage du VBA : tu enregistres une action, tu ouvres l'éditeur VBA pour lire le code généré, et tu comprends comment Excel fonctionne "sous le capot".
Enregistreur de macros : exemples concrets
Exemple 1 : Gestionnaire de stock : automatiser le formatage des imports hebdomadaires
Tu es gestionnaire de stock dans une entreprise de e-commerce. Chaque semaine, tu reçois un fichier CSV du logiciel d'entrepôt avec les mouvements de stock. Le fichier arrive toujours dans le même format brut : pas de mise en forme, colonnes trop étroites, dates en format américain, et des colonnes internes inutiles. Tu passes 15 minutes chaque lundi à le remettre en forme.
Tu lances l'enregistreur de macros et tu effectues ta routine de mise en forme une seule fois : suppression des colonnes inutiles, ajustement automatique des largeurs, conversion des dates, application du format de tableau, ajout d'un filtre. Tu arrêtes l'enregistrement. La semaine suivante, tu ouvres le nouveau fichier CSV, tu lances ta macro, et le formatage se fait en 2 secondes.
Tu peux ensuite assigner un raccourci clavier à ta macro (par exemple Ctrl+Maj+F) pour la lancer encore plus vite. Si le format du CSV change légèrement, tu enregistres une nouvelle macro ou tu modifies le code VBA généré.
Exemple 2 : Assistant de direction : préparer un rapport mensuel standardisé
Tu es assistant de direction dans un cabinet d'audit. Chaque fin de mois, tu dois transformer les données brutes de facturation en un rapport standardisé pour les associés : tri par date, regroupement par client, insertion de sous-totaux, mise en forme avec les couleurs du cabinet, ajout d'un en-tête avec le logo et la période. La procédure est toujours identique mais te prend 25 minutes.
Tu enregistres la macro en effectuant chaque étape une par une : tu tries les données, tu insères les sous-totaux, tu appliques la mise en forme conditionnelle, tu ajoutes l'en-tête. L'enregistreur capture tout. Le mois suivant, tu colles les nouvelles données dans la feuille, tu lances la macro, et ton rapport est prêt en quelques secondes.
Tu peux même associer la macro à un bouton dans la feuille (via Développeur > Insérer > Bouton) pour que n'importe quel collègue puisse générer le rapport sans connaître la procédure de mise en forme.
- #1 Lance l'enregistreur via le petit bouton carré dans la barre d'état en bas à gauche d'Excel. C'est plus rapide que de passer par le menu Développeur > Enregistrer une macro.
- #2 Avant d'enregistrer, active l'option "Utiliser des références relatives" dans l'onglet Développeur. Tes macros s'adapteront à la position de la cellule active au lieu de toujours pointer sur les mêmes cellules.
- #3 Planifie tes étapes avant de lancer l'enregistrement. L'enregistreur capture tout, y compris tes hésitations, tes Ctrl+Z et tes clics inutiles. Un enregistrement propre produit un code VBA plus propre.
- #4 Après l'enregistrement, ouvre l'éditeur VBA (Alt+F11) pour voir le code généré. Supprime les lignes inutiles (sélections superflues, mises en forme que tu n'as pas voulu appliquer) pour optimiser ta macro.
L'enregistreur de macros ne capture pas tout : il ne peut pas enregistrer les boucles, les conditions, les interactions avec des boîtes de dialogue personnalisées ni les actions dans d'autres applications. Si tu as besoin de logique conditionnelle ("si la cellule est vide, fais ceci, sinon fais cela"), tu dois modifier le code VBA manuellement après l'enregistrement.
Les erreurs courantes avec le enregistreur de macros
✕ Enregistrer avec des références absolues sur des données de taille variable
Par défaut, l'enregistreur mémorise les adresses exactes des cellules : si tu sélectionnes A1:A50 pendant l'enregistrement, la macro sélectionnera toujours A1:A50, même si la semaine suivante ton fichier contient 200 lignes. Les lignes 51 à 200 ne seront pas traitées par la macro, et tu ne recevras aucun message d'erreur.
C'est le piège le plus fréquent avec l'enregistreur : la macro fonctionne parfaitement sur le fichier d'origine mais donne des résultats incomplets ou faux dès que la taille des données change. Tu ne t'en rends compte qu'en vérifiant manuellement les résultats.
Solution : Active l'option "Utiliser des références relatives" dans l'onglet Développeur avant d'enregistrer. Pour les sélections de plages complètes, utilise le raccourci Ctrl+Maj+Fin pendant l'enregistrement pour sélectionner jusqu'à la dernière cellule utilisée. En VBA, tu peux aussi remplacer Range("A1:A50") par Range("A1", Range("A1").End(xlDown)) pour t'adapter dynamiquement.
✕ Ne pas nettoyer le code VBA généré par l'enregistreur
L'enregistreur produit un code VBA verbeux avec beaucoup de lignes inutiles. Pour chaque action, il génère d'abord une sélection (Range("A1").Select) puis l'action sur la sélection (Selection.Font.Bold = True). Le code contient aussi toutes les propriétés d'un objet, même celles que tu n'as pas modifiées. Une simple mise en gras peut générer 15 lignes de code qui définissent la police, la taille, la couleur, le style, etc.
Ce code fonctionne mais il est lent (les sélections ralentissent Excel), fragile (il dépend de la feuille active) et difficile à lire. Si tu dois le modifier plus tard, tu ne retrouves pas la logique au milieu du bruit.
Solution : Après chaque enregistrement, ouvre l'éditeur VBA (Alt+F11) et nettoie le code. Remplace les paires Select/Selection par des références directes (Range("A1").Font.Bold = True au lieu de Range("A1").Select puis Selection.Font.Bold = True). Supprime les lignes qui définissent des propriétés que tu n'as pas intentionnellement modifiées.
Questions fréquentes sur le enregistreur de macros
Le moyen le plus rapide est de cliquer sur le petit bouton carré dans la barre d'état, en bas à gauche de la fenêtre Excel. Tu peux aussi passer par l'onglet Développeur > Enregistrer une macro, ou par Affichage > Macros > Enregistrer une macro. Si l'onglet Développeur n'est pas visible, active-le dans Fichier > Options > Personnaliser le ruban en cochant la case Développeur.
En mode références absolues (par défaut), l'enregistreur mémorise les adresses exactes des cellules : ta macro ira toujours sur la cellule A5, peu importe où se trouve ton curseur. En mode références relatives, il mémorise les déplacements par rapport à la cellule active : "descendre de 3 lignes, aller à droite de 2 colonnes". Le mode relatif est indispensable quand tu veux que ta macro s'adapte à la position courante du curseur ou à des données de taille variable.
Oui. Ouvre l'éditeur VBA avec Alt+F11, et retrouve ta macro dans le dossier Modules du projet correspondant. Le code est du VBA standard que tu peux modifier librement : ajouter des conditions, des boucles, corriger des plages, supprimer des lignes inutiles. C'est d'ailleurs la meilleure façon d'apprendre le VBA : tu enregistres une action, tu lis le code généré, puis tu l'adaptes à tes besoins.
Termes liés
Envie d'aller plus loin ?
Explore les 293 termes de notre lexique ou découvre nos formules Excel.