Macro
Une macro est une séquence d'actions enregistrée et rejouable en un clic ou un raccourci clavier, permettant d'automatiser des tâches répétitives dans Excel. Les macros sont stockées en VBA et sauvegardées dans des fichiers .xlsm (avec macros activées). Tu peux en créer une sans coder via l'enregistreur de macros ou en écrivant directement du VBA dans l'éditeur.
À quoi sert un macro dans Excel ?
Une macro est une séquence d'actions Excel enregistrée une fois et rejouable à volonté en un clic ou un raccourci clavier. Elle te permet d'automatiser n'importe quelle suite de manipulations répétitives : formater un tableau selon un modèle précis, importer et nettoyer des données, générer un rapport, envoyer un email depuis Excel, ou lancer une série de calculs dans un ordre précis.
Tu vas en créer une dès que tu réalises que tu répètes les mêmes manipulations plusieurs fois par semaine. L'enregistreur de macros te permet de créer une macro basique sans écrire une seule ligne de code : tu cliques sur Enregistrer, tu effectues tes actions normalement, tu arrêtes l'enregistrement, et ta macro est prête. Pour des automatisations plus complexes (conditions, boucles, interactions avec d'autres fichiers), tu passes par l'éditeur VBA.
Macro : exemples concrets
Exemple 1 : Gestionnaire de stock : formater automatiquement les imports hebdomadaires
Tu es gestionnaire de stock dans une enseigne de distribution. Chaque lundi matin, tu reçois un export CSV du logiciel de gestion avec les mouvements de stock de la semaine. Le fichier arrive toujours dans le même format brut : colonnes mal dimensionnées, en-têtes en anglais, colonnes inutiles, pas de mise en forme. Tu passes 20 minutes chaque semaine à le remettre en forme avant de pouvoir l'analyser.
Avec une macro, tu enregistres une fois ces 20 minutes de mise en forme : suppression des colonnes inutiles, traduction des en-têtes, ajustement des largeurs de colonnes, application d'un format de date cohérent, mise en forme du tableau en bleu. La semaine suivante, tu ouvres ton fichier CSV, tu lances la macro avec un raccourci clavier, et en 3 secondes le fichier est propre et prêt.
Quand le format du fichier source change un peu (une colonne déplacée, un nouveau champ ajouté), tu modifies la macro une seule fois et la correction s'applique à tous les imports suivants.
Exemple 2 : Responsable marketing : générer un rapport mensuel en un clic
Tu es responsable marketing dans une agence digitale. En fin de mois, tu dois produire un rapport de performance pour chacun de tes 8 clients : tu copies les données du mois dans un template standard, tu mets à jour les graphiques, tu supprimes les colonnes internes, tu enregistres le fichier avec le bon nom et tu l'envoies par email. Chaque rapport te prend 15 minutes. Huit clients = 2 heures.
Ta macro automatise tout le processus : elle lit les données de chaque client depuis un onglet centralisé, remplit le template, met à jour les graphiques, enregistre le fichier sous le bon nom dans le bon dossier, et passe au client suivant. Ce qui prenait 2 heures tourne en 90 secondes.
La macro te demande simplement en début d'exécution quel mois traiter, via une petite boîte de dialogue. Tu saisis "Mars 2026", tu valides, et elle s'occupe de tout. Tu récupères 2 heures par mois pour faire autre chose.
- #1 Pour enregistrer une macro, va dans Affichage > Macros > Enregistrer une macro, ou active l'onglet Développeur via Fichier > Options > Personnaliser le ruban. L'onglet Développeur donne accès à l'enregistreur et à l'éditeur VBA en un clic.
- #2 Assigne un raccourci clavier à ta macro au moment de l'enregistrement (Ctrl+Maj+une lettre). Tu peux aussi l'assigner à un bouton en insérant un contrôle de formulaire via Développeur > Insérer > Bouton.
- #3 Sauvegarde les fichiers contenant des macros en format .xlsm (Excel avec macros). Si tu sauvegardes en .xlsx, Excel supprime les macros sans toujours te prévenir clairement.
- #4 Pour que ta macro soit disponible dans tous tes fichiers Excel (pas seulement dans le fichier courant), enregistre-la dans le "Classeur de macros personnelles" au moment de la création.
Les erreurs courantes avec le macro
✕ Enregistrer une macro avec des références absolues qui ne s'adaptent pas aux données variables
Par défaut, l'enregistreur de macros mémorise les adresses exactes des cellules sur lesquelles tu as cliqué. Si tu enregistres une macro qui sélectionne la cellule A5 pour y coller des données, elle sélectionnera toujours A5, même si demain tes données commencent en A3 ou en A10.
Cette rigidité est la principale limitation de l'enregistreur de macros : il reproduit exactement ce que tu as fait, pas l'intention derrière. Une macro créée sur un fichier de 50 lignes peut donner des résultats faux sur un fichier de 200 lignes.
Solution : Active l'option "Utiliser des références relatives" dans le menu Macros avant d'enregistrer. Tes clics seront mémorisés par rapport à la position active plutôt qu'en adresse absolue. Pour les automatisations complexes, passe à VBA où tu peux écrire des macros qui s'adaptent dynamiquement à la taille des données.
✕ Exécuter une macro sans tester sur une copie du fichier
Une macro s'exécute sans confirmation, sans Ctrl+Z possible, et peut modifier ou supprimer des données de façon irréversible. Si ta macro contient une erreur (mauvaise plage, action dans le mauvais onglet), les dégâts peuvent être immédiats et difficiles à corriger.
Le cas classique : tu modifies une macro existante pour l'adapter à un nouveau besoin, tu l'exécutes sur ton fichier de production, et tu te rends compte qu'elle a écrasé 3 colonnes de données importantes. Ctrl+Z ne peut pas annuler les actions d'une macro.
Solution : Teste toujours une macro modifiée ou nouvelle sur une copie du fichier avant de l'exécuter sur les données réelles. Garde aussi l'habitude de sauvegarder juste avant d'exécuter une macro importante, pour pouvoir fermer sans sauvegarder si quelque chose se passe mal.
✕ Sauvegarder en .xlsx et perdre les macros
Quand tu sauvegardes un fichier contenant des macros au format .xlsx (le format Excel par défaut), Excel affiche un avertissement indiquant que les macros vont être supprimées. Mais cet avertissement passe souvent inaperçu, surtout si tu cliques rapidement sur les boîtes de dialogue.
Tu te retrouves avec un fichier .xlsx sans macros, et tu dois recréer ou réimporter tes macros depuis l'original (si tu as pensé à le garder).
Solution : Choisis toujours "Classeur Excel (prenant en charge les macros)" (.xlsm) dans la liste des formats lors de l'enregistrement. Si tu dois partager un fichier sans que le destinataire exécute les macros, fais deux versions : une .xlsm pour ton usage, une .xlsx pour le partage.
Quelle est la différence entre macro et vba (visual basic for applications) ?
Une macro est une séquence d'actions enregistrée et rejoutable. L'enregistreur de macros la crée automatiquement à partir de tes clics et manipulations, sans que tu écrives la moindre ligne de code. C'est rapide à créer, mais rigide : la macro reproduit exactement ce que tu as fait, avec les mêmes cellules, les mêmes positions, sans adaptation possible aux données variables.
VBA est le langage de programmation qui se cache derrière les macros. En écrivant du VBA directement dans l'éditeur (Alt+F11), tu peux créer des macros qui s'adaptent à la taille des données, utilisent des conditions et des boucles, interagissent avec d'autres fichiers ou applications, et affichent des formulaires de saisie. En pratique : commence par l'enregistreur pour les tâches simples, passe au VBA quand tu as besoin de logique ou d'adaptabilité.
Questions fréquentes sur le macro
Va dans l'onglet Affichage, clique sur Macros puis Enregistrer une macro. Donne un nom à ta macro, assigne éventuellement un raccourci clavier, et clique sur OK. Effectue toutes les actions que tu veux automatiser (mises en forme, copier-coller, calculs), puis clique sur Arrêter l'enregistrement dans le même menu. Ta macro est prête et rejouable à tout moment.
Une macro est le résultat : une séquence d'actions automatisées stockée dans Excel. VBA est le langage de programmation dans lequel cette macro est écrite. Quand tu utilises l'enregistreur de macros, Excel génère automatiquement le code VBA correspondant à tes actions. Tu peux ensuite modifier ce code dans l'éditeur VBA pour le rendre plus flexible ou plus puissant. En résumé : toute macro est du VBA, mais tu peux créer une macro sans écrire du VBA toi-même.
Non. Contrairement aux actions manuelles, les actions exécutées par une macro ne peuvent pas être annulées avec Ctrl+Z. Dès qu'une macro s'exécute, l'historique d'annulation est effacé. C'est pourquoi il est fortement conseillé de sauvegarder ton fichier juste avant d'exécuter une macro, et de tester les nouvelles macros sur des copies de fichiers avant de les utiliser en production.
Termes liés
Envie d'aller plus loin ?
Explore les 293 termes de notre lexique ou découvre nos formules Excel.