Aller au contenu

Les macros

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.

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.

Meme - The Office

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.


Une macro peut être créée de deux façons :

MéthodeDescriptionPour qui
EnregistrementExcel observe vos actions et les transcrit automatiquementDébutants, tâches simples
Écriture manuelleOn écrit les instructions directement en codeUtilisateurs avancés, logique complexe

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 de création d'une macroPlanifierLister les étapes exactes à enregistrer. Identifier les pièges potentiels.Faites un essai à la main avant d'enregistrer — repérez les détours inutiles.ConfigurerActiver l'onglet Développeur. Choisir entre références absolues ou relatives.Décidez maintenant : références absolues (mêmes cellules) ou relatives (s'adapte à la celluleactive) ?EnregistrercléDéveloppeur → Enregistrer une macro. Nommer, assigner un raccourci, effectuer les actionslentement.ArrêterDéveloppeur → Arrêter l'enregistrement. Vérifier que toutes les actions ont été capturées.TesterLancer via Alt+F8 ou le raccourci clavier. Vérifier le résultat attendu.Utilisez Ctrl+Z pour annuler si le résultat n'est pas celui attendu.SauvegarderEnregistrer le classeur au format .xlsm (Classeur Excel prenant en charge les macros).Enregistrer en .xlsx supprime toutes les macros sans avertissement préalable.

Nous allons créer une macro qui met en forme l’en-tête d’un tableau : gras, couleur de fond, et texte centré.

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
  1. 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
  2. Démarrez l’enregistrement

    Onglet DéveloppeurEnregistrer 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
  3. 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
  4. Arrêtez l’enregistrement

    Onglet DéveloppeurArrêter l’enregistrement

  5. Testez la macro

    Ouvrez un nouvel onglet avec un tableau quelconque, sélectionnez une cellule, puis lancez la macro :

    • Via Alt + F8 → sélectionnez MettreEnFormeEnTeteExécuter
    • Ou directement avec Ctrl + Maj + M

Appuyez sur Alt + F11 pour ouvrir l’éditeur Visual Basic.

Dans le panneau de gauche (Explorateur de projets), cherchez :

VBAProject (votre_fichier.xlsm)
└── Modules
└── Module1

Double-cliquez sur Module1 pour voir le code de votre macro.


Voici un scénario qui combine les macros avec des fonctions et mises en forme vues dans ce cours.

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 :

  1. Appliquer la mise en forme conditionnelle sur le statut des commandes
  2. Calculer le montant TPS/TVQ pour les nouvelles lignes
  3. Actualiser le tableau croisé dynamique
  4. Mettre en forme l’en-tête

Elle veut regrouper toutes ces étapes en une seule macro.

ColonneContenu
ANo. commande
BClient
CDate commande
DMontant HT
ETPS (5%)
FTVQ (9,975%)
GTotal TTC
HStatut (En cours, Livré, Annulé)

La feuille Résumé contient un tableau croisé dynamique basé sur ces données.

  1. Avant d’enregistrer, préparez le fichier avec quelques lignes de données test.

  2. Démarrez l’enregistrement : DéveloppeurEnregistrer une macro → nom : ActualiserCommandes

  3. 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
  4. Appliquez la mise en forme conditionnelle sur la colonne H :

    • En cours → fond jaune
    • Livré → fond vert
    • Annulé → fond rouge, texte barré
  5. Allez sur la feuille Résumé, clic droit sur le tableau croisé → Actualiser

  6. Revenez sur la feuille principale, mettez en forme l’en-tête (ligne 1)

  7. Arrêtez l’enregistrement

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éveloppeurUtiliser les références relatives avant d’enregistrer

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.

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).

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.