Les macros
Le problème : les tâches répétitives
Section intitulée « Le problème : les tâches répétitives »Dans un contexte professionnel, une grande partie du travail avec Excel consiste à refaire les mêmes opérations, semaine après semaine, sur des données différentes.
Quelques situations typiques
Section intitulée « Quelques situations typiques »Mise en forme de rapports
Chaque lundi matin, Émilie reçoit un fichier CSV des ventes de la semaine. Elle doit toujours :
- Mettre les en-têtes en gras et en bleu
- Figer la première ligne
- Appliquer le format monétaire sur la colonne des montants
- Ajouter une ligne de totaux
Cela lui prend 15 à 20 minutes à chaque fois.
Génération de factures
Marc doit produire une facture PDF pour chaque client actif à la fin du mois. Il copie un gabarit, remplace les informations, ajuste la mise en page, et enregistre sous un nom précis.
Avec une cinquantaine de clients, c’est plusieurs heures de travail mensuel.
Actualisation de tableaux croisés
Chaque semaine, Sarah importe de nouvelles données de ventes, supprime les anciennes, actualise trois tableaux croisés dynamiques, et exporte les résultats dans un autre onglet.
Une séquence de 12 étapes identiques à chaque fois.
Nettoyage de données
Chez Les Têtes Fromagères, les données reçues des fournisseurs sont mal formatées : majuscules incohérentes, espaces en trop, codes de produits à normaliser.
Le même travail de nettoyage recommence à chaque nouvelle livraison de données.
Dans un monde idéal…
Section intitulée « Dans un monde idéal… »
Imaginez que vous puissiez décrire une séquence d’actions une seule fois, et qu’Excel la reproduise ensuite à la demande, en un clic, aussi souvent que nécessaire — sans erreur, sans fatigue.
Vous lui diriez :
« Prends ce fichier. Mets les en-têtes en gras bleu. Fige la première ligne. Applique le format monétaire sur la colonne D. Ajoute une ligne de totaux. »
Et Excel exécuterait exactement ça, chaque fois, instantanément.
Ce monde idéal existe. Il s’appelle les macros.
Les macros
Section intitulée « Les macros »Une macro peut être créée de deux façons :
| Méthode | Description | Pour qui |
|---|---|---|
| Enregistrement | Excel observe vos actions et les transcrit automatiquement | Débutants, tâches simples |
| Écriture manuelle | On écrit les instructions directement en code | Utilisateurs avancés, logique complexe |
Un clin d’œil à la programmation
Section intitulée « Un clin d’œil à la programmation »Avec les macros, vous franchissez une frontière importante : vous entrez dans l’univers de la programmation.
Quand vous enregistrez une macro, Excel transcrit vos clics en un langage de programmation — un code qu’il peut relire et exécuter. Vous n’avez pas à l’écrire vous-même au départ, mais vous pouvez le consulter, le comprendre, et éventuellement le modifier.
C’est une belle porte d’entrée vers des concepts que l’on retrouve dans tous les langages de programmation : séquences d’instructions, variables, conditions, boucles.
Flux général d’une macro
Section intitulée « Flux général d’une macro »Créer votre première macro
Section intitulée « Créer votre première macro »Nous allons créer une macro qui met en forme l’en-tête d’un tableau : gras, couleur de fond, et texte centré.
Préparation
Section intitulée « Préparation »Avant d’enregistrer une macro, quelques règles d’or :
- Planifiez exactement les étapes que vous voulez enregistrer
- Travaillez lentement — chaque clic et chaque touche est capturé
- Évitez les détours — les erreurs et les corrections s’enregistrent aussi
Enregistrement
Section intitulée « Enregistrement »-
Activez l’onglet Développeur
Si l’onglet Développeur n’est pas visible dans le ruban :
- Clic droit sur le ruban → Personnaliser le ruban
- Cochez Développeur dans la colonne de droite → OK
-
Démarrez l’enregistrement
Onglet Développeur → Enregistrer une macro
Dans la boîte de dialogue :
- Nom :
MettreEnFormeEnTete(pas d’espaces, pas d’accents) - Touche de raccourci :
Ctrl + Maj + M(par exemple) - Enregistrer dans : Ce classeur
- Description : Met en forme la ligne d’en-tête du tableau actif
- Cliquez OK — l’enregistrement commence
- Nom :
-
Effectuez les actions
Sélectionnez la ligne 1 (clic sur le numéro de ligne), puis :
- Appliquez le Gras (
Ctrl + G) - Choisissez une couleur de fond (bleu foncé :
1B3A6B) - Changez la couleur du texte en blanc
- Cliquez sur Centrer dans le ruban
- Appliquez le Gras (
-
Arrêtez l’enregistrement
Onglet Développeur → Arrêter l’enregistrement
-
Testez la macro
Ouvrez un nouvel onglet avec un tableau quelconque, sélectionnez une cellule, puis lancez la macro :
- Via
Alt + F8→ sélectionnezMettreEnFormeEnTete→ Exécuter - Ou directement avec
Ctrl + Maj + M
- Via
Voir le code généré
Section intitulée « Voir le code généré »Appuyez sur Alt + F11 pour ouvrir l’éditeur Visual Basic.
Dans le panneau de gauche (Explorateur de projets), cherchez :
VBAProject (votre_fichier.xlsm) └── Modules └── Module1Double-cliquez sur Module1 pour voir le code de votre macro.
Sub MettreEnFormeEnTete()'' MettreEnFormeEnTete Macro' Met en forme la ligne d'en-tête du tableau actif'' Raccourci clavier: Ctrl+Maj+M' Rows("1:1").Select Selection.Font.Bold = True With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 1784091 ' bleu foncé .TintAndShade = 0 End With With Selection.Font .Color = -1 ' blanc .TintAndShade = 0 End With With Selection .HorizontalAlignment = xlCenter End WithEnd SubMême sans connaître VBA, on peut déjà déchiffrer :
Rows("1:1").Select→ sélectionne la ligne 1Selection.Font.Bold = True→ applique le gras.Color = 1784091→ définit une couleur (en code numérique)xlCenter→ correspond à l’alignement centré
Chaque action que vous avez effectuée a été traduite en une ou plusieurs lignes de code.
Application : un exemple avec les notions vues
Section intitulée « Application : un exemple avec les notions vues »Voici un scénario qui combine les macros avec des fonctions et mises en forme vues dans ce cours.
Contexte
Section intitulée « Contexte »La comptable de la Menuiserie Abitibi gère un fichier de suivi des commandes. Chaque semaine, elle reçoit de nouvelles données et doit :
- Appliquer la mise en forme conditionnelle sur le statut des commandes
- Calculer le montant TPS/TVQ pour les nouvelles lignes
- Actualiser le tableau croisé dynamique
- Mettre en forme l’en-tête
Elle veut regrouper toutes ces étapes en une seule macro.
Structure du fichier
Section intitulée « Structure du fichier »| Colonne | Contenu |
|---|---|
| A | No. commande |
| B | Client |
| C | Date commande |
| D | Montant HT |
| E | TPS (5%) |
| F | TVQ (9,975%) |
| G | Total TTC |
| H | Statut (En cours, Livré, Annulé) |
La feuille Résumé contient un tableau croisé dynamique basé sur ces données.
Étapes de la macro
Section intitulée « Étapes de la macro »-
Avant d’enregistrer, préparez le fichier avec quelques lignes de données test.
-
Démarrez l’enregistrement :
Développeur→Enregistrer une macro→ nom :ActualiserCommandes -
Calculez TPS/TVQ sur la dernière ligne vide :
- En E2 :
=D2*0,05 - En F2 :
=D2*0,09975 - En G2 :
=D2+E2+F2 - Copiez vers le bas jusqu’à la dernière ligne de données
- En E2 :
-
Appliquez la mise en forme conditionnelle sur la colonne H :
En cours→ fond jauneLivré→ fond vertAnnulé→ fond rouge, texte barré
-
Allez sur la feuille Résumé, clic droit sur le tableau croisé → Actualiser
-
Revenez sur la feuille principale, mettez en forme l’en-tête (ligne 1)
-
Arrêtez l’enregistrement
Conseils et pièges
Section intitulée « Conseils et pièges »Références absolues vs relatives
Section intitulée « Références absolues vs relatives »Par défaut, l’enregistreur utilise des références absolues (ex. Range("D2")). Si vos données changent de taille chaque semaine, c’est problématique.
Pour enregistrer avec des références relatives (qui s’adaptent à la cellule active) :
- Activez Développeur → Utiliser les références relatives avant d’enregistrer
Mise en forme conditionnelle et macros
Section intitulée « Mise en forme conditionnelle et macros »Si la mise en forme conditionnelle est déjà en place, inutile de la recréer à chaque fois. Votre macro peut simplement actualiser les données — la mise en forme se mettra à jour automatiquement.
Actualisation du TCD
Section intitulée « Actualisation du TCD »L’actualisation d’un tableau croisé dynamique s’enregistre bien. Vérifiez simplement que la plage de données source englobe toujours vos nouvelles lignes (utiliser un Tableau structuré règle ce problème élégamment).
Et après ? En route vers les agents
Section intitulée « Et après ? En route vers les agents »Les macros sont une première forme d’automatisation : vous définissez une séquence fixe, et Excel l’exécute.
Mais cette automatisation a ses limites : une macro ne réfléchit pas. Elle rejoue aveuglément la même séquence, quelle que soit la situation.
Depuis quelques années, une nouvelle génération d’outils repousse ces limites : les agents IA.
Agents IA dans Excel
Microsoft intègre Copilot directement dans Excel. Au lieu d’enregistrer des macros, vous pouvez décrire ce que vous voulez faire en langage naturel :
« Surligne en rouge toutes les commandes en retard de plus de 7 jours. »
L’agent génère et exécute les instructions sans que vous ayez à les enregistrer manuellement.
Automatisation multi-applications
Des outils comme Power Automate (Microsoft) ou Zapier permettent de créer des flux automatisés qui impliquent plusieurs applications à la fois :
- Un formulaire reçu par courriel → données insérées dans Excel → rapport généré → envoi automatique au gestionnaire
C’est de l’automatisation au-delà d’un seul fichier.