Aller au contenu principal
Niveau ExpertLeçon 20 / 22
22 min de lecture

Macro Excel et VBA : automatiser tes tâches répétitives

Tu répètes les mêmes actions chaque semaine dans Excel ? Les macros existent pour ça, et la première s'enregistre en 5 minutes.

Lucas, la mascotte du Dojo, en super-héros : niveau expert
Prêt à commencer ?0/7

Le cas d'usage classique : tu reçois chaque lundi un export CSV de ton outil de gestion, tu l'ouvres dans Excel, tu supprimes trois colonnes inutiles, tu formates le tableau, tu appliques un filtre et tu l'envoies par e-mail au responsable. Vingt minutes de travail répétitif. Avec une macro, cette même séquence prend 4 secondes.

Ce guide te montre comment enregistrer ta première macro en 5 minutes, puis comment écrire du VBA pour aller plus loin.

À la fin de cette leçon, tu sauras…

  • Comprendre ce qu'est une macro et ce qu'elle te fait gagner
  • Enregistrer ta première macro sans écrire une ligne de code
  • Exécuter une macro et lire le VBA qu'Excel génère
  • Écrire du VBA avec variables, conditions et boucles
  • Activer les macros sans prendre de risque
  • Choisir entre enregistreur, VBA et Power Query
  • 🧩 7 étapes
  • ⚡ 3 quiz éclair
  • 🏆 1 validation finale

Étape 1

C'est quoi une macro Excel, et pourquoi en créer une ?

Une macro Excel est une séquence d'actions automatisées : au lieu de cliquer sur les mêmes boutons dans le même ordre chaque semaine, tu enregistres cette séquence une seule fois et Excel la rejoue à la demande.

Les macros sont écrites en VBA (Visual Basic for Applications), le langage de programmation intégré à toute la suite Office. Tu n'as pas besoin de connaître VBA pour créer ta première macro utile grâce à l'enregistreur, mais en comprendre quelques bases te permet de modifier les macros enregistrées et de les rendre vraiment puissantes.

Le gain de temps est immédiat : une tâche de 20 minutes faite chaque lundi devient une exécution de 3 secondes, et l'effet se cumule à chaque fichier que tu automatises, si bien que sur une année tu récupères plusieurs heures. La répétabilité est parfaite, parce qu'une macro fait exactement la même chose à chaque exécution sans fatigue ni erreur d'inattention, là où une faute de manipulation dans un rapport récurrent passe facilement inaperçue.

Pour démarrer, tu n'as besoin d'aucune connaissance : l'enregistreur de macro capture tes actions sans la moindre ligne de code, et tu peux créer ta première macro utile en moins de 5 minutes, puis ouvrir le code généré pour voir ce qu'Excel a écrit à ta place. Et une fois que tu passes au VBA, ta logique métier devient documentée : ton collègue peut reprendre ton travail et comprendre la logique ligne par ligne, au lieu de redécouvrir une suite de clics dans ta tête.

Concrètement, les macros Excel s'utilisent pour générer des rapports récurrents, formater automatiquement des imports de données, envoyer des e-mails depuis Excel, consolider plusieurs fichiers, créer des interfaces simples avec des boutons et valider des données avant envoi. Presque tout ce que tu fais manuellement peut être automatisé.

Les macros Excel en vidéo

Voir une macro se construire en direct, c'est souvent plus parlant que de le lire. Cette vidéo montre comment créer une macro Excel de A à Z.

Étape 2

Enregistrer ta première macro Excel pas à pas

Où le trouver :DéveloppeurEnregistrer une macro

L'enregistreur de macro est sans doute l'outil le plus sous-utilisé d'Excel, alors qu'il fait tout le travail à ta place : il regarde ce que tu fais et traduit chaque action en code VBA, sans que tu aies la moindre ligne à écrire.
Une seule chose à régler avant de te lancer, c'est l'onglet qui héberge l'outil.

Affiche d'abord l'onglet DéveloppeurIl n'est pas visible par défaut, mais tu ne le débloques qu'une fois. Fais un clic droit sur n'importe quel onglet du ruban, choisis Personnaliser le ruban, coche Développeur dans la liste de droite et valide. L'onglet apparaît aussitôt et regroupe tout ce dont tu auras besoin, à savoir l'enregistreur de macro, l'éditeur VBA et les boutons de formulaire.

Onglet Développeur d'Excel : le groupe Code (Visual Basic, Macros, Enregistrer une macro, Sécurité des macros), le groupe Compléments, et le groupe Contrôles (Insérer, Mode Création, Visualiser le code).
Une fois affiché, l'onglet Développeur regroupe tout : Visual Basic et Macros, « Enregistrer une macro », et « Insérer » pour poser un bouton sur la feuille.

Une fois l'onglet en place, la création d'une macro tient en trois temps que tu vas répéter à chaque fois.

01

Lance l’enregistreur

Dans l'onglet Développeur, clique sur Enregistrer une macro. Une boîte de dialogue s'ouvre et te demande quatre choses, dont deux seulement comptent vraiment au début. Le nom ne tolère ni espace ni caractère spécial, donc tape par exemple FormatRapportHebdo. La touche de raccourci reste optionnelle, Ctrl + une lettre pour déclencher la macro au clavier, en évitant les classiques déjà pris comme Ctrl+C. Pour Enregistrer dans, garde « Ce classeur » pour l'instant, le « Classeur de macros personnelles » viendra plus tard quand tu voudras la macro partout. La description enfin t'aidera à t'y retrouver le jour où tu en auras vingt.
Clique sur OK et l'enregistrement démarre aussitôt, le bouton du ruban devient Arrêter l'enregistrement et un petit carré s'allume dans la barre d'état en bas de l'écran.

02

Effectue tes actions normalement

Tout ce que tu fais est désormais capté. Prends un cas concret pour t'entraîner, sélectionne les colonnes A à D, applique un fond vert clair sur l'en-tête, mets le texte en gras, puis pose un filtre automatique. Chaque clic, chaque sélection, chaque raccourci se retrouve traduit en VBA.
Inutile d'aller vite, l'enregistreur ne mesure pas le temps, seulement les actions, donc prends-les dans l'ordre et sans te précipiter.

03

Arrête l’enregistrement et enregistre en .xlsm

Quand tu as terminé, clique sur Arrêter l'enregistrement, depuis l'onglet Développeur ou via le carré de la barre d'état, et ta macro est sauvegardée. Pense alors à enregistrer le fichier au format .xlsm (classeur Excel avec macros), parce qu'un classeur Excel standard ne sait pas stocker de code. Si Excel te propose le format sans macros, réponds Non pour rester en .xlsm et garder ton travail.

Boîte de dialogue « Enregistrer une macro » d'Excel, avec les champs Nom de la macro, Touche de raccourci (Ctrl+), Enregistrer la macro dans, et Description.
Au démarrage, seuls le nom et l'emplacement comptent vraiment : le raccourci et la description restent facultatifs.
Le conseil du pro
Planifie tes actions avant de cliquer sur « Enregistrer une macro ». Chaque déplacement de cellule inutile, chaque clic hésitant se retrouve dans le code généré et l'alourdit pour rien. Plus ton enregistrement est net, plus le VBA produit est lisible derrière.
⚡ Quiz éclair

Ton classeur contient maintenant une macro. Dans quel format l'enregistres-tu pour la garder ?

Étape 3

Exécuter et modifier ta macro

Une macro enregistrée ne sert à rien tant que tu ne sais pas la relancer à volonté, puis l'ajuster quand le besoin évolue.
La bonne nouvelle, c'est qu'Excel te laisse plusieurs portes d'entrée pour la déclencher, de la plus technique à la plus accessible, et qu'une fois la macro lancée tu peux toujours rouvrir son code pour le retoucher.

Par le menu Macros, pour testerVa dans Développeur > Macros , sélectionne ta macro dans la liste et clique sur Exécuter. C'est la voie idéale pendant la mise au point, quand tu lances la macro plusieurs fois de suite pour vérifier qu'elle se comporte comme prévu.

Boîte de dialogue « Macro » d'Excel (Alt+F8) listant les macros EnvoyerParMail et FormaterLeRapport, avec le champ « Nom de la macro ».
La boîte « Macro » (Alt+F8) liste toutes tes macros. Tu en sélectionnes une pour l'exécuter, la modifier ou la supprimer.

Par le raccourci clavier, pour la vitesseSi tu as associé une combinaison à l'enregistrement, comme Ctrl+Maj+F, elle déclenche la macro sur-le-champ. C'est le réflexe pour les macros que tu utilises tous les jours, sans jamais quitter ton clavier.

Par un bouton sur la feuille, pour partagerDans Développeur > Insérer > Bouton (contrôle de formulaire), dessine un bouton sur ta feuille, assigne-lui ta macro et renomme-le clairement. Un bouton visible est parfait quand tu transmets le fichier à des collègues qui ne connaissent rien au VBA, car ils n'ont plus qu'à cliquer.

Boîte de dialogue « Affecter une macro » d'Excel : la liste des macros disponibles (EffacerLesDonnees, MettreAJourLeRapport) à choisir pour le bouton, avec le champ « Nom de la macro » et la liste déroulante « Macros dans ».
Dès que tu dessines le bouton, Excel ouvre « Affecter une macro » : choisis la macro à lier dans la liste, puis valide. Le bouton la lance ensuite d'un simple clic.

Pour modifier une macro, ouvre l’éditeur VBA avec Alt+F11Ce raccourci ouvre le Visual Basic Editor (le VBE), l'environnement de développement intégré à Excel. L'interface est sobre mais tu t'y repères vite. Dans le panneau de gauche, l'Explorateur de projets, développe ton classeur pour voir tes modules, puis double-clique sur Module1 pour afficher le code de ta macro. Il ressemble à ceci.

Éditeur Visual Basic (VBE) d'Excel : à gauche l'Explorateur de projets avec les modules, à droite la fenêtre de code affichant la macro Sub FormatRapportHebdo() en couleurs.
L'éditeur VBA : à gauche l'Explorateur de projets (tes feuilles et modules), à droite le code de la macro, ici Module1. La barre de titre indique « Module1 (Code) ».
Sub FormatRapportHebdo()
'
' FormatRapportHebdo Macro
' Formate l'en-tête du rapport hebdomadaire
'
    Rows("1:1").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 13434828
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Selection.Font
        .Bold = True
        .Size = 12
    End With
    Selection.AutoFilter
End Sub

Ce code paraît abscons au premier abord, et pourtant il se lit ligne par ligne. La ligne Sub FormatRapportHebdo() ouvre la procédure, Rows("1:1").Select sélectionne la première ligne, le bloc With applique la couleur et le gras d'un coup, et End Sub referme le tout.

Les lignes qui commencent par une apostrophe ' sont des commentaires, ignorés par Excel à l'exécution. N'hésite pas à en ajouter autant que tu veux pour expliquer ce que fait chaque bloc, c'est ce qui rend une macro maintenable des mois plus tard.

⚡ Quiz éclair

Tu veux retoucher le code d'une macro enregistrée. Quel raccourci ouvre l'éditeur VBA ?

Étape 4

Introduction au VBA : l'éditeur, les bases, les variables, les boucles

L'enregistreur te donne un point de départ, tandis que le VBA te donne les moyens d'aller bien au-delà de ce qu'on peut seulement enregistrer.
La bonne nouvelle, c'est que les bases s'apprennent en quelques heures, puisqu'il suffit de maîtriser une poignée de concepts fondamentaux que tu retrouveras ensuite dans toutes tes macros.

La structure d'une Sub

En VBA, une procédure s'appelle une Sub (pour Subroutine). Elle commence par Sub NomDeLaProcedure() et se termine par End Sub. Tout le code entre ces deux lignes s'exécute dans l'ordre, ligne par ligne.

Sub DireBonjour()
    MsgBox "Bonjour depuis Excel !"
End Sub

MsgBox affiche une boîte de dialogue avec un message. C'est la façon la plus simple de communiquer avec l'utilisateur. Place ce code dans un module, appuie sur F5 (ou Exécuter > Exécuter Sub), et la boîte apparaît.

Les variables : stocker des valeurs temporairement

Une variable est une boîte nommée qui stocke une valeur pendant l'exécution de la macro. Tu la déclares avec Dim, tu lui assignes une valeur avec =.

Sub ExempleVariables()
    Dim prenom As String
    Dim age As Integer
    Dim chiffreAffaires As Double

    prenom = "Marie"
    age = 32
    chiffreAffaires = 47850.50

    MsgBox prenom & " a " & age & " ans. CA : " & chiffreAffaires & " €"
End Sub

Les types de variables courants en VBA : String pour du texte, Integer pour des entiers (-32768 à 32767), Long pour les grands entiers, Double pour les décimaux, Boolean pour Vrai/Faux, Date pour les dates.

Le conseil du pro
Ajoute Option Explicit en haut de chaque module pour forcer Excel à signaler les variables non déclarées. Sans cette ligne, les fautes de frappe dans les noms de variables passent inaperçues et créent des bugs silencieux, très pénibles à retrouver.

Les conditions avec If...Then...Else

VBA suit une logique conditionnelle similaire à la fonction SI d'Excel, mais en plusieurs lignes et avec plus de possibilités.

Sub EvaluerNote()
    Dim note As Integer
    note = Range("B2").Value   ' Lit la valeur de la cellule B2

    If note >= 90 Then
        Range("C2").Value = "Excellent"
    ElseIf note >= 70 Then
        Range("C2").Value = "Bien"
    ElseIf note >= 50 Then
        Range("C2").Value = "Passable"
    Else
        Range("C2").Value = "Insuffisant"
    End If
End Sub

Cette macro lit la valeur de la cellule B2, la compare à des seuils et écrit un libellé correspondant en C2. Range("B2").Value est la façon de lire une cellule en VBA. Range("C2").Value = "texte" écrit dans une cellule.

Les boucles : répéter une action sur plusieurs lignes

C'est là que le VBA devient vraiment puissant. Au lieu d'appliquer une action sur chaque ligne manuellement, tu demandes à VBA de parcourir toutes les lignes automatiquement. La boucle For...Next est la plus utilisée.

Sub ColorierLignesSuperieures()
    Dim i As Long
    Dim derniereLigne As Long

    ' Trouve la dernière ligne avec des données en colonne A
    derniereLigne = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 2 To derniereLigne   ' Commence à 2 pour ignorer l'en-tête
        If Cells(i, 2).Value > 1000 Then   ' Si la colonne B > 1000
            Rows(i).Interior.Color = RGB(198, 239, 206)   ' Fond vert clair
        Else
            Rows(i).Interior.ColorIndex = xlNone   ' Supprime la couleur
        End If
    Next i

    MsgBox "Mise en forme terminée. " & (derniereLigne - 1) & " lignes traitées."
End Sub

Décryptage : Cells(Rows.Count, 1).End(xlUp).Row est l'équivalent VBA de Ctrl+↑ lancé depuis la dernière ligne de la feuille : il trouve la dernière ligne non vide de la colonne A. La boucle For i = 2 To derniereLigne parcourt chaque ligne de la ligne 2 jusqu'à la dernière. Cells(i, 2).Value lit la valeur de la cellule en ligne i, colonne 2 (colonne B).

Ce pattern (trouver la dernière ligne + boucle For) est le plus répété en VBA. Tu peux l'adapter à presque tous tes besoins : calculer, formater, filtrer, déplacer des données ligne par ligne.

Un exemple d'automatisation réel : le rapport hebdomadaire

Voici un exemple concret qui combine tout ce qu'on vient de voir. Imagine que tu travailles en contrôle de gestion et que tu reçois chaque lundi un export des ventes de la semaine. Ton travail : nettoyer le fichier, calculer les totaux par région, colorier les lignes hors objectif, puis exporter un onglet récapitulatif.

Sans macro, ce travail prend 25 minutes. Avec la macro ci-dessous, 8 secondes.

Sub TraiterRapportVentes()
    Dim ws As Worksheet
    Dim derniereLigne As Long
    Dim i As Long
    Dim totalVentes As Double

    ' Référence à la feuille "Données"
    Set ws = ThisWorkbook.Sheets("Données")

    ' Désactive le rafraîchissement écran pour aller plus vite
    Application.ScreenUpdating = False

    ' Trouve la dernière ligne
    derniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    ' Parcourt chaque ligne de données (sans l'en-tête)
    For i = 2 To derniereLigne

        ' Calcule le total (quantité × prix unitaire)
        ws.Cells(i, 5).Value = ws.Cells(i, 3).Value * ws.Cells(i, 4).Value

        ' Colorie en rouge si le total est inférieur à l'objectif
        If ws.Cells(i, 5).Value < ws.Cells(i, 6).Value Then
            ws.Rows(i).Interior.Color = RGB(255, 199, 199)   ' Rouge clair
        Else
            ws.Rows(i).Interior.ColorIndex = xlNone
        End If

    Next i

    ' Recalcule toutes les formules
    Application.Calculate

    ' Réactive le rafraîchissement écran
    Application.ScreenUpdating = True

    MsgBox "Rapport traité. " & (derniereLigne - 1) & " lignes analysées.", _
           vbInformation, "Traitement terminé"
End Sub

Deux techniques méritent qu'on s'y arrête. La ligne Set ws = ThisWorkbook.Sheets("Données") crée une référence à la feuille pour ne pas répéter son nom à chaque appel, ce qui allège tout le reste du code. Et Application.ScreenUpdating = False gèle l'affichage le temps de l'exécution, si bien que la macro tourne 3 à 5 fois plus vite, avant qu'on le repasse à True à la toute fin.

Le combo gagnant
Le VBA et Outlook se marient très bien pour finir le travail. Tu peux prolonger cette macro de quelques lignes pour qu'elle copie l'onglet récapitulatif dans un nouveau classeur, l'enregistre avec la date du jour dans le nom du fichier, puis l'envoie en pièce jointe par Outlook. Le tout tient en moins de quinze lignes de VBA supplémentaires, et c'est exactement le genre d'automatisation que l'enregistreur ne saura jamais produire seul.

D'autres exemples de ce que le VBA fait là où Excel s'arrête t'attendent sur la page des macros Excel prêtes à copier, chacune avec son code commenté et la façon de l'installer.

Étape 5

Sécurité des macros : .xlsm, activer les macros, les risques réels

Les macros sont bloquées par défaut dans Excel, et c'est une mesure de sécurité légitime : les ransomwares qui se propagent par e-mail utilisent souvent des macros VBA piégées dans des fichiers Word ou Excel, d'où l'importance de comprendre quand activer les macros et quand ne pas le faire.

Pourquoi le format .xlsm est obligatoire

Microsoft a introduit le format Open XML (.xlsx) en 2007 pour standardiser les fichiers Excel, et par conception ce format ne peut pas contenir de code VBA. C'est une mesure de sécurité assumée, si bien que les macros ne se stockent que dans les formats .xlsm (classeur avec macros) et .xlsb (format binaire).

Si tu partages un .xlsm avec quelqu'un qui l'enregistre en .xlsx, les macros sont définitivement supprimées. Pour éviter ça, tu peux ajouter en début de macro un test qui vérifie le format du fichier et avertit l'utilisateur le cas échéant :

Sub VerifierFormatFichier()
    If Right(ThisWorkbook.Name, 5) <> ".xlsm" Then
        MsgBox "Attention : ce fichier n'est pas au format .xlsm." & Chr(10) & _
               "Les macros ne seront pas disponibles après la prochaine sauvegarde.", _
               vbExclamation, "Format de fichier incorrect"
    End If
End Sub

Activer les macros de façon sécurisée

Quand tu ouvres un fichier .xlsm, Excel affiche une barre jaune sous le ruban, « Les macros ont été désactivées », avec un bouton « Activer le contenu ». Ne clique sur ce bouton que dans trois cas, à savoir un fichier que tu as créé toi-même, un fichier reçu d'un collègue de confiance dans ton entreprise, ou un fichier qui vient d'un éditeur de logiciel que tu connais. Dans le moindre doute, garde les macros désactivées, tu ne perds rien à pouvoir lire le fichier sans les exécuter.

L’erreur fatale
N'active jamais les macros d'un fichier reçu d'un expéditeur que tu ne connais pas, même quand le message insiste sur le fait que « les macros sont nécessaires pour afficher le contenu ». C'est précisément le scénario d'ingénierie sociale qu'utilisent les rançongiciels pour s'installer, et la barre jaune reste ta dernière ligne de défense.

Régler le niveau de sécurité

Pour choisir toi-même comment Excel traite les macros à l'ouverture, va dans Développeur > Sécurité des macros (ou Fichier > Options > Centre de gestion de la confidentialité). La boîte s'ouvre sur « Paramètres des macros » : le réglage recommandé est « Désactiver les macros VBA avec notification », qui bloque les macros par défaut tout en affichant la barre jaune pour les activer au cas par cas.

Centre de gestion de la confidentialité d'Excel, catégorie « Paramètres des macros » : les quatre niveaux, de « Désactiver toutes les macros sans notification » à « Activer les macros VBA ».
« Développeur › Sécurité des macros » ouvre ce panneau. Reste sur « Désactiver les macros VBA avec notification » : sûr, sans être bloquant.

Les emplacements de confiance

Si tu travailles souvent avec des fichiers Excel à macros dans un dossier spécifique (par exemple un dossier partagé réseau de ton entreprise), tu peux définir ce dossier comme emplacement de confiance. Les fichiers de ce dossier s'ouvrent sans avertissement macro.

Règle-le dans Fichier > Options > Centre de gestion de la confidentialité > Paramètres du Centre de gestion de la confidentialité > Emplacements approuvés, où tu ajoutes le chemin de ton dossier. Attention tout de même, n'ajoute jamais ton bureau ni ton dossier Téléchargements comme emplacement de confiance, sinon n'importe quel fichier piégé qui y atterrit s'exécuterait sans le moindre avertissement.

⚡ Quiz éclair

Un inconnu t'envoie un classeur, et son message insiste : « les macros sont nécessaires pour afficher le contenu ». Que fais-tu ?

Étape 6

Enregistreur de macro vs écrire du VBA : quand utiliser quoi ?

Les deux approches sont complémentaires : l'enregistreur est rapide mais limité, tandis que le VBA est puissant mais demande un peu d'apprentissage. Voici comment choisir selon le besoin.

BesoinEnregistreurVBA manuel
Formater un tableau (couleurs, police, bordures)✅ Idéal⚠️ Surdimensionné
Appliquer les mêmes filtres / tris✅ Suffisant⚠️ Surdimensionné
Traiter un nombre variable de lignes❌ Références fixes✅ Obligatoire
Condition sur valeur (si > seuil, alors...)❌ Impossible✅ Obligatoire
Boucle sur des milliers de lignes❌ Impossible✅ Obligatoire
Boîte de dialogue utilisateur (InputBox)❌ Impossible✅ Nécessaire
Interagir avec Outlook ou Word⚠️ Partiel✅ Recommandé
Protéger / déprotéger des feuilles✅ Possible✅ Plus flexible

La façon la plus efficace d'apprendre consiste justement à marier les deux, en capturant tes actions avec l'enregistreur, puis en allant lire le code généré dans l'éditeur VBA. Tu repères vite les motifs qui reviennent et tu comprends comment les adapter, un peu comme on lit un traducteur automatique pour apprendre une langue, sans encore l'écrire mais en commençant à la décoder.

Le savais-tu ?
Dans l'éditeur VBA, la touche F8 exécute ta macro une ligne à la fois. Excel met en surbrillance l'instruction en cours et tu vois son effet immédiat sur la feuille, ce qui en fait l'outil parfait pour comprendre ce que fait chaque ligne et repérer celle qui plante quand une macro se comporte mal. Peu de débutants connaissent ce mode pas à pas, alors qu'il change tout au moment de déboguer.

Quand préférer Power Query aux macros ?

Power Query et les macros VBA donnent l'impression de faire la même chose, automatiser du travail dans Excel, alors qu'ils répondent en réalité à des besoins assez différents.
Choisir le bon outil dès le départ te fait gagner du temps et t'épargne, des mois plus tard, ces maintenances pénibles où l'on bricole un outil pour lui faire faire ce qui n'est pas son rôle.

Penche pour Power Query quand tu transformes des donnéesC'est l'outil tout indiqué dès que tu importes des sources externes (un CSV, une base de données, d'autres classeurs), que tu les nettoies de façon répétable en supprimant des doublons ou en dépivotant des colonnes, ou que tu consolides chaque mois plusieurs fichiers d'un même dossier. Il brille aussi quand la logique se résume à un pipeline d'étapes successives, et que tu veux que cette transformation reste visible et modifiable par quelqu'un qui ne connaît rien au VBA.

Penche pour les macros VBA quand tu pilotes ExcelElles deviennent indispensables dès que tu dois dialoguer avec d'autres applications comme Outlook ou Word, construire une interface avec des boutons et des formulaires, ou tenir une logique conditionnelle riche qui croise des feuilles et déclenche des alertes. Plus largement, tout ce qui relève d'actions Excel pures, mise en forme, protection, gestion des feuilles, et tout ce qui ne se décrit pas comme une simple transformation de données, est du ressort du VBA.

Dans la vraie vie, les deux se complètent plus qu'ils ne s'opposent, Power Query important et nettoyant les données en amont, puis une macro formatant et distribuant le rapport final. Ensemble, ils couvrent l'immense majorité des besoins d'automatisation Excel d'un professionnel.

Étape 7

Les 5 erreurs les plus fréquentes avec les macros Excel

Chaque débutant en macros rencontre les mêmes écueils, et les connaître à l'avance t'évite des heures de débogage inutile.

Enregistrer en .xlsx et perdre ses macros

Excel te prévient, mais on clique vite sur « Oui » par habitude. Résultat : toutes tes macros sont effacées. Toujours enregistrer en .xlsm dès qu'un classeur contient des macros.

Références absolues au lieu de relatives

L'enregistreur utilise par défaut des références absolues (cellule B2 fixe). Si tu veux que la macro fonctionne quelle que soit la cellule de départ, active « Utiliser les références relatives » avant d'enregistrer.

Macro liée à un classeur spécifique

Par défaut, une macro enregistrée n'est disponible que dans le classeur dans lequel elle a été créée. Pour l'utiliser partout, enregistre-la dans le « Classeur de macros personnelles ».

Ne pas tester sur des données de test

Une macro qui supprime des lignes ou modifie des données agit directement, sans corbeille. Toujours tester sur une copie du fichier, jamais sur les données d'origine.

Oublier de gérer les erreurs en VBA

Si une macro trouve une plage vide ou un nom de feuille incorrect, elle plante sans explication utile. Utilise On Error GoTo pour capturer les erreurs et afficher un message clair à l'utilisateur.

Ce qu’il faut retenir
Teste toujours ta macro sur un fichier d'essai d'une dizaine de lignes avant de la lâcher sur le vrai classeur qui en compte 10 000. Les bugs restent invisibles sur un petit jeu de données et deviennent catastrophiques sur un grand, parce qu'une macro agit sans corbeille, d'un seul coup et sans retour en arrière.

Tu sais maintenant enregistrer une macro, lire le VBA qu'Excel génère et le retoucher pour automatiser tes tâches répétitives.
Reste un cas où une macro n'est pas le meilleur outil, celui où tout ton travail consiste à importer, nettoyer et combiner des données. C'est précisément le terrain de la prochaine leçon sur Power Query, où tu rejoues des transformations complètes d'un simple clic, sans écrire une ligne de code.

Tu as peut-être encore une question

Une macro est une série d'actions enregistrées (ou écrites en VBA) qu'Excel peut rejouer en un clic. Concrètement, tout ce que tu fais à la main dans Excel peut être automatisé avec une macro : formater un tableau, générer un rapport, envoyer des données vers une autre feuille.

Pour aller plus loin

Toutes les ressources du site pour continuer à progresser, en libre accès.

Besoin d’aide sur Excel ?

Rejoins le Dojo pour poser tes questions, obtenir de l’aide sur tes fichiers Excel et participer chaque mois à un cours collectif en direct.

Gratuit · Sans carte bancaire