Enregistrer une macro Excel : guide complet pour automatiser vos tâches
Vous répétez chaque matin les mêmes manipulations dans Excel : mettre en forme un tableau, supprimer des colonnes inutiles, appliquer des filtres, créer un total ou préparer un rapport ? Et si Excel pouvait s’en charger à votre place ?
Grâce à l’enregistreur de macros, vous pouvez transformer une série d’actions en une commande réutilisable. Pas besoin de savoir coder en VBA pour commencer. Excel observe vos manipulations, les traduit en instructions VBA, puis les rejoue en quelques secondes.
Dans ce guide, vous allez découvrir comment enregistrer une macro Excel, l’exécuter, la modifier et éviter les erreurs les plus courantes. L’objectif : automatiser vos tâches répétitives sans vous arracher les cheveux devant un tableau de 2 000 lignes.
Qu’est-ce qu’une macro Excel ?
Une macro est une suite d’instructions permettant d’automatiser des actions dans Excel. Elle peut par exemple :
- mettre en forme un tableau ;
- trier ou filtrer des données ;
- ajouter des formules ;
- créer une nouvelle feuille ;
- générer un rapport ;
- exporter des données ;
- répéter une même série de clics et de commandes.
Dans Excel, les macros sont généralement écrites en VBA, pour Visual Basic for Applications. Rassurez-vous : l’enregistreur de macros se charge de produire le code à votre place. Vous n’avez donc pas besoin de commencer par apprendre toutes les subtilités du langage.
Imaginez un collègue très attentif qui note chacun de vos gestes. Vous cliquez sur une cellule, appliquez une couleur, modifiez une police, insérez une formule… Il mémorise tout et peut ensuite reproduire la séquence à l’identique. C’est exactement le principe de l’enregistreur.
Afficher l’onglet Développeur
L’outil d’enregistrement des macros se trouve dans l’onglet Développeur. Celui-ci n’est pas toujours visible par défaut.
Pour l’afficher dans Excel sous Windows :
- cliquez sur Fichier ;
- ouvrez Options ;
- sélectionnez Personnaliser le ruban ;
- cochez Développeur dans la liste des onglets principaux ;
- validez avec OK.
L’onglet apparaît alors dans le ruban, généralement à droite des autres onglets. Vous y trouverez notamment les commandes Visual Basic, Macros et Enregistrer une macro.
Sur Mac, le chemin peut légèrement varier selon la version d’Excel, mais le principe reste le même : ouvrez les préférences du ruban et activez l’onglet Développeur.
Préparer Excel avant l’enregistrement
Une macro reproduit vos actions dans l’ordre où vous les effectuez. Une préparation correcte est donc essentielle. Avant de cliquer sur Enregistrer une macro, prenez quelques instants pour réfléchir au résultat attendu.
Posez-vous les questions suivantes :
- Sur quelle feuille la macro doit-elle agir ?
- Les données commencent-elles toujours au même endroit ?
- Le nombre de lignes est-il fixe ou variable ?
- La macro doit-elle fonctionner sur le classeur actuel ou sur tous les classeurs ?
- Quelles actions sont réellement nécessaires ?
Évitez également les manipulations inutiles pendant l’enregistrement. Chaque clic peut être traduit en instruction VBA. Si vous sélectionnez plusieurs cellules sans raison, Excel risque d’ajouter des lignes de code qui compliqueront la macro sans apporter de valeur.
Enregistrer une première macro
Prenons un exemple simple : vous souhaitez appliquer une mise en forme standard à un tableau. La première ligne doit être en gras, avec un fond bleu et une police blanche. Les colonnes doivent ensuite être ajustées automatiquement.
Voici la procédure :
- ouvrez le classeur contenant votre tableau ;
- allez dans l’onglet Développeur ;
- cliquez sur Enregistrer une macro ;
- attribuez un nom à la macro ;
- choisissez éventuellement un raccourci clavier ;
- indiquez l’emplacement d’enregistrement ;
- cliquez sur OK ;
- effectuez les actions à automatiser ;
- cliquez sur Arrêter l’enregistrement.
Le nom de la macro doit être explicite. Utilisez par exemple MettreEnFormeRapport plutôt qu’un nom vague comme Macro1. Un nom clair vous aidera à vous y retrouver lorsque le classeur contiendra plusieurs macros.
Évitez les espaces et les caractères spéciaux dans le nom. Vous pouvez utiliser des majuscules pour séparer les mots, comme dans NettoyerDonnees ou CreerSynthese.
Choisir où enregistrer la macro
Excel vous propose généralement trois emplacements :
- Ce classeur : la macro sera disponible uniquement dans le fichier actuel ;
- Nouveau classeur : Excel créera un autre fichier pour stocker la macro ;
- Classeur de macros personnelles : la macro sera disponible dans Excel, quel que soit le classeur ouvert.
Pour une automatisation liée à un fichier précis, choisissez Ce classeur. C’est le cas, par exemple, d’une macro qui met en forme un rapport ayant toujours la même structure.
Le Classeur de macros personnelles est pratique pour les outils que vous utilisez partout, comme une macro qui insère automatiquement la date du jour ou qui ajuste la largeur des colonnes. Attention toutefois : ce classeur est personnel et peut ne pas être présent sur un autre ordinateur.
Utiliser les références relatives
L’option Utiliser les références relatives est l’un des réglages les plus importants de l’enregistreur.
Lorsque les références relatives sont désactivées, Excel mémorise précisément les cellules utilisées. Si vous sélectionnez la cellule B2, la macro agira sur B2 à chaque exécution.
Lorsque les références relatives sont activées, Excel mémorise les déplacements. Si vous sélectionnez une cellule située deux lignes sous la cellule active, la macro reproduira ce déplacement à partir de la cellule sélectionnée au moment de l’exécution.
Voici un exemple concret. Vous voulez formater la ligne située sous la cellule active :
- activez Utiliser les références relatives ;
- placez-vous sur une cellule de départ ;
- descendez d’une ligne ;
- appliquez la mise en forme ;
- arrêtez l’enregistrement.
La macro pourra ensuite fonctionner à partir de nombreuses cellules différentes. Sans les références relatives, elle risque de revenir systématiquement à la même zone, ce qui est rarement souhaité.
Un bon réflexe consiste à vérifier l’état du bouton avant chaque enregistrement. Pour certaines macros, les références absolues sont adaptées. Pour d’autres, elles rendent l’outil beaucoup plus souple.
Exécuter une macro enregistrée
Une fois la macro créée, plusieurs méthodes permettent de la lancer.
La plus simple consiste à utiliser la boîte de dialogue des macros :
- ouvrez l’onglet Développeur ;
- cliquez sur Macros ;
- sélectionnez la macro souhaitée ;
- cliquez sur Exécuter.
Vous pouvez également utiliser le raccourci clavier défini au moment de l’enregistrement. Cette méthode est rapide, mais soyez prudent : un raccourci personnalisé peut remplacer un raccourci Excel existant. Par exemple, certaines combinaisons peuvent modifier le comportement habituel d’Excel.
Pour une utilisation plus conviviale, vous pouvez associer la macro à un bouton :
- insérez une forme depuis l’onglet Insertion ;
- faites un clic droit sur cette forme ;
- sélectionnez Affecter une macro ;
- choisissez la macro concernée ;
- validez.
Vous obtenez ainsi un bouton « Mettre en forme » ou « Générer le rapport », compréhensible par tous les utilisateurs du fichier. C’est souvent plus rassurant qu’une combinaison de touches mystérieuse.
Enregistrer le fichier au bon format
Un fichier contenant des macros doit être enregistré dans un format compatible. Utilisez le format Classeur Excel prenant en charge les macros (*.xlsm).
Si vous enregistrez le fichier au format classique .xlsx, Excel vous avertira que les macros ne pourront pas être conservées. Si vous confirmez, votre code risque d’être supprimé.
Pour éviter toute mauvaise surprise :
- cliquez sur Fichier, puis Enregistrer sous ;
- ouvrez la liste des types de fichiers ;
- sélectionnez Classeur Excel prenant en charge les macros ;
- donnez un nom explicite au fichier ;
- enregistrez.
Le format .xlsm est indispensable pour conserver les macros. Pensez aussi à réaliser une copie de sauvegarde avant de tester une macro sur un fichier important.
Afficher et comprendre le code VBA
L’enregistreur est une excellente porte d’entrée vers VBA. Pour afficher le code produit par Excel, ouvrez l’onglet Développeur, puis cliquez sur Visual Basic. Vous pouvez également utiliser le raccourci Alt + F11 sous Windows.
Dans l’éditeur, ouvrez le dossier Modules de votre classeur. Vous devriez y trouver un module contenant une procédure ressemblant à ceci :
Sub MettreEnFormeRapport() Range("A1:F1").Select Selection.Font.Bold = True Selection.Interior.Color = RGB(31, 78, 121) Selection.Font.Color = RGB(255, 255, 255) Columns("A:F").AutoFitEnd Sub
Le code peut sembler impressionnant au début, mais sa logique est assez lisible. Sub indique le début d’une macro, tandis que End Sub marque sa fin. Les lignes situées entre les deux correspondent aux actions enregistrées.
Vous remarquerez souvent l’utilisation de Select et de Selection. L’enregistreur les emploie fréquemment, mais un code VBA optimisé peut généralement s’en passer. Par exemple :
Sub MettreEnFormeRapport() With Range("A1:F1") .Font.Bold = True .Interior.Color = RGB(31, 78, 121) .Font.Color = RGB(255, 255, 255) End With Columns("A:F").AutoFitEnd Sub
Cette version est plus compacte et évite de sélectionner les cellules à l’écran. Elle est souvent plus rapide et moins sensible aux changements de sélection.
Modifier une macro sans tout recommencer
L’un des grands avantages de l’enregistreur est qu’il fournit une base modifiable. Vous pouvez ensuite adapter quelques lignes de code.
Supposons que la macro applique toujours une couleur bleue. Pour changer cette couleur, il suffit de modifier les valeurs RGB. Une couleur est composée de trois valeurs comprises entre 0 et 255 : rouge, vert et bleu.
- RGB(255, 0, 0) correspond au rouge ;
- RGB(0, 255, 0) correspond au vert ;
- RGB(0, 0, 255) correspond au bleu ;
- RGB(255, 255, 255) correspond au blanc.
Vous pouvez aussi ajouter une instruction simple, comme l’insertion de la date du jour :
Range("A1").Value = "Rapport généré le " & Format(Date, "dd/mm/yyyy")
Avant de modifier une macro, faites une copie du fichier. Une erreur de syntaxe ou une mauvaise référence peut empêcher le code de fonctionner correctement. Rien de dramatique : il suffit généralement de revenir à la version précédente et de corriger progressivement.
Les limites de l’enregistreur de macros
L’enregistreur est pratique, mais il ne comprend pas votre intention. Il se contente de mémoriser vos gestes. Cette différence est importante.
Si vous sélectionnez uniquement les cellules A1 à A20 pendant l’enregistrement, la macro ciblera cette même plage à chaque exécution. Elle ne saura pas automatiquement qu’un nouveau fichier contient 500 lignes.
De même, l’enregistreur gère difficilement :
- les tableaux dont la taille varie ;
- les conditions comme « si la cellule est vide » ;
- les boucles sur plusieurs lignes ;
- les recherches complexes ;
- les interactions avec plusieurs classeurs ;
- les traitements nécessitant une logique métier.
Dans ces situations, il faut souvent compléter le code avec des variables, des boucles et des conditions VBA. L’enregistreur reste néanmoins un excellent point de départ : il permet d’obtenir la syntaxe exacte d’une action Excel, puis de l’adapter.
Exemple : automatiser le nettoyage d’un tableau
Imaginons un fichier contenant des données clients. Vous souhaitez supprimer les lignes vides, ajuster les colonnes et mettre la première ligne en évidence.
Vous pouvez enregistrer une première version en effectuant manuellement ces actions. Ensuite, le code pourra être simplifié et adapté :
Sub NettoyerTableau() Dim derniereLigne As Long Dim derniereColonne As Long derniereLigne = Cells(Rows.Count, 1).End(xlUp).Row derniereColonne = Cells(1, Columns.Count).End(xlToLeft).Column With Range(Cells(1, 1), Cells(1, derniereColonne)) .Font.Bold = True .Interior.Color = RGB(217, 225, 242) End With Range(Cells(1, 1), Cells(derniereLigne, derniereColonne)).Columns.AutoFitEnd Sub
Cette version repère automatiquement la dernière ligne de la première colonne et la dernière colonne utilisée sur la première ligne. Elle s’adapte donc mieux à un tableau dont le volume évolue.
Il faudra bien sûr la tester sur une copie de vos données. Une macro qui modifie ou supprime des éléments agit rapidement, parfois beaucoup trop rapidement pour laisser le temps de réfléchir.
Autoriser les macros en toute sécurité
Les macros peuvent automatiser des tâches utiles, mais elles peuvent aussi contenir du code malveillant. Excel affiche donc souvent un avertissement de sécurité à l’ouverture d’un fichier contenant des macros.
N’activez les macros que si vous connaissez la provenance du fichier et que vous lui faites confiance. Un document reçu par e-mail ou téléchargé sur Internet mérite une vérification supplémentaire.
Quelques bonnes pratiques :
- conservez une copie originale de vos fichiers ;
- testez les macros sur des données fictives ;
- évitez d’activer les macros d’un expéditeur inconnu ;
- lisez le code VBA lorsqu’un fichier provient d’une source externe ;
- documentez les macros importantes avec des commentaires.
Pour ajouter un commentaire dans le code, placez une apostrophe au début de la ligne :
' Mise en forme de la ligne d'en-tête
Ces commentaires ne sont pas exécutés par Excel, mais ils expliquent le rôle de chaque bloc lorsque vous reviendrez sur le fichier quelques semaines plus tard.
Tester et fiabiliser une macro
Une macro fonctionnelle sur un exemple ne l’est pas forcément dans toutes les situations. Testez-la avec plusieurs cas :
- un tableau contenant peu de lignes ;
- un tableau plus volumineux ;
- des cellules vides ;
- des valeurs inhabituelles ;
- des feuilles portant des noms différents ;
- un classeur ouvert dans un état différent.
Observez également ce qui se passe lorsque vous exécutez la macro deux fois de suite. Certaines actions, comme l’ajout de colonnes ou la création d’une feuille, peuvent produire des doublons.
Pour rendre le code plus fiable, vous pouvez désactiver temporairement l’actualisation de l’écran :
Application.ScreenUpdating = False' Instructions de la macroApplication.ScreenUpdating = True
Excel évite ainsi de rafraîchir l’affichage après chaque instruction, ce qui peut accélérer les macros longues. Veillez toutefois à réactiver ScreenUpdating à la fin, sans quoi Excel pourrait sembler figé.
Les erreurs fréquentes à éviter
La première erreur consiste à enregistrer une macro sans savoir précisément ce que l’on souhaite automatiser. Prenez le temps de décrire la tâche en quelques étapes avant de commencer.
La deuxième est d’oublier le format .xlsm. Vous pouvez passer plusieurs minutes à créer une macro pour finalement la perdre au moment de l’enregistrement.
La troisième est de sélectionner systématiquement les cellules. Une macro basée sur des sélections fonctionne parfois, mais elle devient fragile si l’utilisateur clique ailleurs ou si la structure du tableau change.
Enfin, ne testez jamais une macro destructive sur votre fichier original. Une suppression de lignes ou une modification massive peut être irréversible. La touche magique Ctrl + Z ne permet pas toujours d’annuler les actions réalisées par une macro.
Quand passer de l’enregistreur au VBA manuel ?
L’enregistreur est idéal pour débuter, comprendre la logique du code et gagner du temps sur des opérations répétitives. Il devient moins adapté lorsque vos besoins nécessitent des décisions ou une adaptation dynamique.
Vous aurez intérêt à écrire ou modifier le VBA manuellement si vous devez :
- parcourir chaque ligne d’un tableau ;
- appliquer une règle selon la valeur d’une cellule ;
- traiter automatiquement plusieurs feuilles ;
- chercher la dernière ligne d’une liste ;
- gérer des erreurs ;
- interagir avec Outlook, Word ou d’autres fichiers Excel.
La bonne méthode consiste souvent à combiner les deux approches : enregistrez une action simple, examinez le code généré, puis améliorez-le progressivement. C’est une manière concrète d’apprendre VBA, sans commencer par un manuel de 800 pages et une tasse de café devenue froide.
Une méthode simple pour vos prochaines macros
Pour créer des automatisations efficaces, adoptez ce processus :
- identifiez une tâche répétitive et clairement définie ;
- préparez un fichier de test ;
- activez l’onglet Développeur ;
- choisissez entre références absolues et relatives ;
- enregistrez uniquement les actions utiles ;
- arrêtez l’enregistrement dès que la tâche est terminée ;
- testez la macro sur plusieurs situations ;
- enregistrez le fichier au format .xlsm ;
- ajoutez un bouton ou un raccourci si nécessaire ;
- documentez le fonctionnement pour vous et vos collègues.
Commencez par une petite automatisation : formater un rapport, nettoyer une liste ou préparer une feuille. Une fois la logique comprise, vous pourrez enrichir votre macro et découvrir progressivement la puissance du VBA.
L’enregistreur de macros n’est pas une solution magique capable de deviner vos besoins. C’est plutôt un assistant patient qui transforme vos gestes en code. Utilisé avec une préparation claire, des tests et quelques notions de VBA, il peut vous faire gagner un temps considérable au quotidien.