C'est quoi une macro dans Excel ? (Et en avez-vous encore besoin ?)
Les macros Excel expliquées simplement — ce qu'elles font, comment elles fonctionnent, et pourquoi les agents IA les remplacent pour la plupart des tâches.
Si vous utilisez Excel depuis plus de quelques mois, quelqu'un vous a probablement dit : « Tu devrais utiliser une macro pour ça. » Peut-être que vous avez hoché la tête et changé de sujet. Peut-être que vous avez cherché sur Google, vu les lettres V-B-A, et fermé l'onglet.
C'est compréhensible. Mais les macros ne sont pas aussi mystérieuses qu'elles en ont l'air — et comprendre ce qu'elles font réellement vaut bien cinq minutes de votre temps. Même si, comme nous allons le voir, vous n'en avez peut-être plus besoin.
Ce qu'est réellement une macro (sans jargon)
Une macro est un ensemble d'instructions qui dit à Excel de faire quelque chose automatiquement. C'est tout.
Pensez-y comme une recette de cuisine. Au lieu de sélectionner manuellement une colonne, cliquer sur trier, ajuster le format et copier le résultat — vous enregistrez ces étapes une fois, puis vous les rejouez en un seul clic ou raccourci clavier.
Sous le capot, Excel écrit ces étapes dans un langage appelé VBA (Visual Basic for Applications). Vous n'avez pas besoin de comprendre le VBA pour enregistrer une macro. Mais si vous voulez en modifier une ou en écrire une de zéro, c'est là que le VBA entre en jeu.
L'idée clé : une macro remplace des étapes manuelles répétitives par une seule action.
Enregistrer votre première macro — étape par étape
Vous n'avez pas besoin d'écrire du code pour créer votre première macro. Excel dispose d'un enregistreur intégré qui observe ce que vous faites et le traduit automatiquement en VBA.
Voici comment :
- Ouvrez l'onglet Développeur. Si vous ne le voyez pas, allez dans Fichier → Options → Personnaliser le ruban → cochez « Développeur ».
- Cliquez sur « Enregistrer une macro ». Donnez-lui un nom (sans espaces — utilisez des underscores). Vous pouvez aussi lui attribuer un raccourci clavier.
- Faites ce que vous voulez automatiser. Par exemple : sélectionner la colonne A, trier de A à Z, mettre la ligne d'en-tête en gras, ajuster la largeur des colonnes.
- Cliquez sur « Arrêter l'enregistrement ». C'est tout. Votre macro existe maintenant.
- Exécutez-la. Allez dans Développeur → Macros → sélectionnez la vôtre → Exécuter. Ou utilisez le raccourci que vous avez attribué.
Que s'est-il passé ? Excel a observé chaque clic et chaque frappe, et les a enregistrés sous forme de script VBA. La prochaine fois que vous devez faire la même chose, un clic remplace vingt.
Un mot de prudence
L'enregistreur capture exactement ce que vous faites — erreurs comprises. Si vous sélectionnez la cellule B7 pendant l'enregistrement, la macro ira toujours en B7, même si vos données ont grandi. C'est la plus grande limitation des macros enregistrées : elles sont rigides. Elles ne s'adaptent pas aux données qui changent.
Le VBA derrière le rideau
Voyons ce que l'enregistreur produit réellement. Supposons que vous avez enregistré une macro qui trie la colonne A et met la ligne d'en-tête en gras. Voici à quoi ressemble le VBA :
Sub MettreEnFormeDonnees()
' Trier la colonne A par ordre croissant
Columns("A:A").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 _
Key:=Range("A1"), _
SortOn:=xlSortOnValues, _
Order:=xlAscending
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:D100")
.Header = xlYes
.Apply
End With
' Mettre en gras la ligne d'en-tête
Rows("1:1").Select
Selection.Font.Bold = True
' Ajuster la largeur des colonnes
Cells.Select
Cells.EntireColumn.AutoFit
End Sub
Quelques observations :
- C'est verbeux. Ce qui vous a pris trois clics devient quinze lignes de code.
- C'est spécifique. La plage
A1:D100est codée en dur. Si vos données vont jusqu'à la ligne 200 le mois prochain, la macro ne le saura pas. - Il y a des
.Selectpartout. C'est la signature des macros enregistrées — l'enregistreur reproduit vos clics littéralement. Le VBA écrit à la main est généralement beaucoup plus propre.
Un développeur VBA expérimenté réécrirait ça ainsi :
Sub MettreEnFormeDonnees()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
ws.Range("A1:D" & lastRow).Sort Key1:=ws.Range("A1"), Order1:=xlAscending, Header:=xlYes
ws.Rows(1).Font.Bold = True
ws.UsedRange.EntireColumn.AutoFit
End Sub
Plus court, dynamique, sans .Select. Mais maintenant il faut comprendre le VBA suffisamment bien pour l'écrire — ce qui est une compétence différente de l'utilisation d'Excel.
Où les macros brillent (et où elles cassent)
Les macros sont réellement utiles dans des situations spécifiques :
Là où elles fonctionnent bien :
- Tâches de formatage simples et répétables — appliquer le même style à un rapport chaque semaine
- Raccourcis de saisie — insérer des horodatages, remplir des valeurs standard
- Opérations sur un seul classeur — tout vit dans un seul fichier, rien d'externe ne change
- Productivité personnelle — vous l'avez écrite, vous l'exécutez, vous la maintenez
Là où elles craquent :
- Opérations multi-fichiers. Lire cinq classeurs différents ? Vous passerez plus de temps à gérer les chemins de fichiers, la logique d'ouverture/fermeture et la gestion d'erreurs que sur la tâche elle-même.
- Tout ce qui implique des e-mails, des PDF ou des systèmes externes. Le VBA peut automatiser Outlook et exporter des PDF, mais le code est fragile et dépend de la version.
- Quand la structure des données change. Une nouvelle colonne, une feuille renommée, un format de date différent — chacun de ces éléments peut casser une macro silencieusement. Elle ne lancera pas d'erreur. Elle produira simplement de mauvais résultats.
- Environnements partagés. Les macros vivent dans les fichiers classeur (.xlsm). Les services informatiques désactivent régulièrement les macros pour des raisons de sécurité. Partager un fichier avec macros déclenche des alertes qui effraient les utilisateurs non techniques.
Le problème de maintenance dont personne ne vous prévient
Voici le scénario qui se joue dans des milliers d'entreprises :
- Quelqu'un dans l'équipe apprend le VBA et crée une macro qui fait gagner des heures à tout le monde.
- Ça fonctionne très bien pendant six mois.
- Cette personne quitte l'entreprise (ou change de poste, ou oublie simplement comment la macro fonctionne).
- La source de données change légèrement — une nouvelle colonne, un fichier renommé.
- La macro casse.
- Personne ne sait comment la réparer.
- L'équipe revient au traitement manuel.
Ce n'est pas hypothétique. C'est le résultat le plus courant pour les macros Excel en entreprise.
Le problème n'est pas le VBA en soi — c'est le modèle de maintenance. Les macros sont écrites par une seule personne, comprises par une seule personne, et maintenues par une seule personne. Quand cette personne n'est plus disponible, l'automatisation meurt.
Il n'y a pas non plus de contrôle de version, pas de framework de test, et aucun moyen de voir ce qu'une macro va faire avant de l'exécuter (à part lire le code). Si vous avez déjà ouvert la macro de quelqu'un d'autre et vu 500 lignes de VBA sans commentaires, vous connaissez la sensation.
Pour une comparaison détaillée de comment ça se passe avec différents outils, voir J'ai testé l'automatisation du même rapport Excel avec VBA, Python, Zapier et un agent IA.
Macros vs. agents IA : comparaison côte à côte
Si les macros sont des « instructions enregistrées », les agents IA sont des « intentions décrites ». Voici comment ils se comparent :
| Macro Excel (VBA) | Agent IA (ex. Reflexion) | |
|---|---|---|
| Comment on le crée | Enregistrer des clics ou écrire du VBA | Décrire la tâche en français courant |
| Temps de mise en place | 30 min – plusieurs heures | 5–15 minutes |
| Compétence technique requise | Maîtrise du VBA | Aucune |
| Gère les données qui changent | Casse si la structure change | S'adapte automatiquement |
| Opérations multi-fichiers | Possible mais complexe | Intégré |
| Export PDF et e-mail | Automatisation COM fragile | Intégré |
| Maintenance | Manuelle, par l'auteur original | Automatique — décrivez les changements en langage courant |
| Collaboration | Fichiers .xlsm partagés avec alertes de sécurité | Cloud, pas de partage de fichiers nécessaire |
| Gestion des erreurs | Vous l'écrivez vous-même (ou ça échoue silencieusement) | Intégrée avec revue humaine |
| Historique des versions | Aucun (sauf copies manuelles) | Piste d'audit complète |
La différence fondamentale : une macro encode comment faire quelque chose. Un agent IA comprend ce que vous voulez faire.
Quand vous écrivez une macro, vous programmez chaque étape : ouvrir ce fichier, aller à cette cellule, copier cette plage, la coller là. Quand quelque chose change, vous réécrivez les étapes.
Quand vous décrivez une tâche à un agent IA, vous dites quel doit être le résultat : « consolider ces cinq fichiers de ventes en un résumé avec les totaux par région. » L'agent détermine les étapes — et les redétermine quand les fichiers changent.
Pour en savoir plus sur comment ça fonctionne en pratique, voir Comment automatiser ses rapports Excel sans écrire de VBA.
Quand utiliser une macro, et quand s'en passer complètement
Les macros ne sont pas mortes. Elles ont encore du sens dans des situations précises :
Utilisez une macro quand :
- La tâche est simple (moins de 20 lignes de VBA)
- Elle opère sur un seul classeur stable
- Vous êtes la seule personne à en avoir besoin
- Vous aimez écrire du VBA (certaines personnes aiment vraiment ça)
Passez la macro et utilisez un agent IA quand :
- La tâche implique plusieurs fichiers, sources de données ou formats de sortie
- D'autres personnes dépendent du bon fonctionnement de l'automatisation
- La structure des données pourrait changer avec le temps
- Vous avez besoin d'envoi par e-mail, de génération de PDF ou de connexions à d'autres outils
- Vous ne voulez pas écrire ni maintenir du code
- Vous avez besoin que l'automatisation survive au turnover
La plupart des gens qui cherchent « c'est quoi une macro dans Excel » veulent arrêter de faire la même tâche fastidieuse chaque semaine. Les macros étaient la meilleure réponse à cette question pendant trente ans. Elles ne le sont plus.
La meilleure question n'est pas « comment créer une macro ? » — c'est « comment décrire ce que je veux faire ? » Si vous pouvez écrire une phrase expliquant la tâche, un agent IA peut l'automatiser. Pas de VBA, pas de débogage, pas de maintenance.
Si vous êtes curieux de savoir ce que sont les agents IA et comment ils fonctionnent au-delà d'Excel, voir Introduction aux agents IA. Et si vous voulez en voir un gérer un vrai workflow Excel de bout en bout, essayez Reflexion gratuitement — décrivez votre première tâche en français et regardez-le s'exécuter.
Vous hésitez encore entre les macros et une approche plus intelligente ? Envoyez-nous votre workflow et nous vous montrerons les deux options côte à côte — à quoi ressemblerait la macro, et à quoi ressemblerait l'alternative avec un agent IA. Sans engagement, juste de la clarté.
Lectures complémentaires
- J'ai testé l'automatisation du même rapport avec VBA, Python, Zapier et un agent IA — Comparatif terrain de quatre outils d'automatisation
- Automatiser les rapports Excel sans écrire de VBA — Pourquoi les agents IA remplacent les macros pour l'automatisation des rapports
- Comment Reflexion automatise vos rapports Excel mensuels — Tutoriel étape par étape
- Introduction aux agents IA — Ce que sont les agents IA et comment ils fonctionnent
reflexion