Excel Mania

Enregistrer une macro Excel : guide complet pour automatiser vos tâches

Enregistrer une macro Excel : guide complet pour automatiser vos tâches

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 :

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 :

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 :

É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 :

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 :

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 :

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 :

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 :

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 :

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.

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 :

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 :

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 :

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 :

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 :

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.

Quitter la version mobile