Application métierSur-mesureMéthodeBudget
Remplacer des macros VBA Excel : les options, les risques et la méthode
10 min de lecture

Remplacez vos macros VBA quand le classeur est devenu un logiciel dont l'entreprise dépend : plusieurs utilisateurs, des données critiques, un auteur parti ou sur le départ. Selon ce que fait la macro, la bonne cible est Office Scripts, un script Python, un flux Power Automate ou une vraie application web. La méthode, elle, ne change pas : inventorier, comprendre ce que le code fait réellement, puis faire tourner l'ancien et le nouveau en parallèle jusqu'à obtenir les mêmes résultats.
Cet article s'adresse à un dirigeant ou un responsable de service qui hérite d'un classeur « à macros » et se demande quoi en faire. Si votre question est plus large (faut-il sortir d'Excel tout court), lisez d'abord remplacer un fichier Excel par une application métier.
Pourquoi la question se pose maintenant
Le VBA a plus de vingt-cinq ans et fonctionne toujours. Mais plusieurs évolutions récentes de Microsoft réduisent sa place, et elles sont documentées.
- Les macros des fichiers venus d'internet sont bloquées par défaut. Sous Windows, depuis la version 2206 du canal courant de Microsoft 365, déployée à partir du 27 juillet 2022, un fichier reçu par e-mail ou téléchargé s'ouvre avec ses macros bloquées, sans bouton « Activer le contenu » (Microsoft Learn, page mise à jour le 17 juillet 2026). Un classeur partagé par e-mail entre deux sites ne marche donc plus sans manipulation.
- Le VBA ne tourne ni dans Excel pour le web, ni sur iPhone ou Android. Le tableau de compatibilité publié par Microsoft le confirme (différences entre Office Scripts et VBA). Si une partie de l'équipe travaille dans le navigateur, elle voit le classeur, pas ses boutons.
- VBScript disparaît progressivement de Windows. Microsoft a annoncé
trois phases : VBScript devient une fonctionnalité à la demande avec
Windows 11 24H2, n'est plus activé par défaut vers 2027, puis est retiré
(annonce du 22 mai 2024).
Le VBA lui-même n'est pas concerné, mais les projets VBA qui appellent
un script
.vbsou utilisent la bibliothèque d'expressions régulières de VBScript le sont.
À ces raisons techniques s'ajoute la plus courante : la personne qui a écrit les macros a changé de poste, et plus personne n'ose y toucher.
Ce que font vraiment vos macros : l'inventaire
Avant de choisir un outil, il faut savoir ce que l'on remplace. Une macro « qui fait le reporting » cache souvent cinq fonctions distinctes. Pour chaque classeur, notez :
| Question | Pourquoi elle compte |
|---|---|
| Qui l'utilise, et combien ? | Un utilisateur ou une équipe : pas la même cible |
| Que déclenche l'utilisateur ? | Bouton, ouverture du fichier, modification de cellule |
| Quelles données entrent ? | Saisie, autres classeurs, export d'un logiciel |
| Quelles données sortent ? | Fichier, e-mail, impression, mise à jour d'une base |
| À quelle fréquence ? | Une fois par mois ou cent fois par jour |
| Que se passe-t-il si elle échoue ? | Gêne, retard de paie, facture fausse |
Ouvrez ensuite l'éditeur VBA (Alt+F11) et listez les modules, les formulaires (UserForms) et les références cochées dans « Outils > Références ». Ces références révèlent les dépendances cachées : Outlook pour l'envoi d'e-mails, ADO pour une base Access ou SQL Server, VBScript pour les expressions régulières, un composant ActiveX installé sur certains postes seulement.
Classez enfin chaque macro dans l'une de ces familles :
- Mise en forme et nettoyage : supprimer des lignes vides, mettre en couleur, trier.
- Calcul et consolidation : agréger plusieurs onglets ou fichiers, appliquer des règles de gestion.
- Saisie guidée : formulaires, listes déroulantes dépendantes, contrôles de cohérence.
- Échanges : envoi d'e-mails, import d'un export comptable, écriture dans une base.
- Petite application complète : tout cela à la fois, utilisé par plusieurs personnes.
La famille décide de l'outil.
Les cinq options, et ce que chacune remplace bien
Supprimer la macro
C'est l'option la plus oubliée. Une partie des macros écrites il y a dix ans compensait l'absence de fonctions qui existent aujourd'hui dans Excel : tableaux structurés, Power Query pour importer et transformer des données, formules dynamiques comme FILTRE ou UNIQUE. Un nettoyage ou une consolidation de fichiers se refait souvent sans une ligne de code, ce qui supprime le problème de maintenance au lieu de le déplacer.
Office Scripts
Office Scripts est le successeur désigné par Microsoft pour automatiser Excel dans le cloud. Les scripts sont écrits en TypeScript, s'enregistrent avec un enregistreur d'actions, et tournent dans Excel pour le web, Windows et Mac. Leur grand avantage : ils peuvent être lancés par Power Automate, selon un calendrier ou un événement, sans que personne n'ouvre le fichier.
Leurs limites sont écrites noir sur blanc par Microsoft : pas d'événements Excel (rien ne se déclenche à l'ouverture ou à la modification d'une cellule), aucun accès au poste de travail, des appels à internet limités, et une licence Microsoft 365 entreprise ou éducation nécessaire. Les formulaires VBA n'ont pas d'équivalent direct.
Bon choix pour : les familles 1 et 2, quand les données restent dans Excel et que l'entreprise est déjà sous Microsoft 365.
Python, hors du classeur
Un script Python exécuté sur un serveur lit des dizaines de fichiers Excel, applique les règles de calcul, produit le fichier de sortie et l'envoie, sans jamais ouvrir Excel. C'est la réponse naturelle aux consolidations lourdes et aux traitements nocturnes. Le code est lisible, testable, versionné dans un dépôt : on sait qui a changé quoi.
À ne pas confondre avec Python dans Excel, qui permet d'écrire du Python dans une cellule pour analyser des données. Les calculs s'y exécutent dans le cloud de Microsoft (page de Microsoft) : c'est un outil d'analyse, pas un remplaçant des boutons et formulaires d'un classeur.
Bon choix pour : la famille 2 à gros volume, et une partie de la famille 4 (imports, exports, envois planifiés).
Power Automate ou un outil d'automatisation
Quand la macro sert surtout à faire circuler une information (prévenir un responsable, copier une ligne dans un autre outil, archiver une pièce), un outil d'automatisation comme Power Automate, n8n ou Make fait le travail sans code à maintenir. Notre comparatif n8n, Make ou développement sur mesure détaille où ces outils cassent.
Bon choix pour : la famille 4, sur des flux simples.
Une application web
Quand le classeur est en réalité une petite application (famille 3 ou 5) : plusieurs personnes saisissent, des règles de gestion contrôlent la saisie, des documents sortent, l'historique compte. Dans ce cas, déplacer le code vers un autre langage de script ne règle rien : le fichier reste partagé, écrasé, copié en « version finale v3 ». Une application web met la donnée dans une base, donne à chacun ses droits, garde la trace des modifications et fonctionne dans un navigateur, sur n'importe quel poste.
C'est l'option la plus lourde, et la seule qui supprime les causes du problème. Pour un outil Microsoft intermédiaire, voyez aussi Power Apps ou développement sur mesure.
Le tableau pour choisir
| Ce que fait la macro | Option la plus adaptée |
|---|---|
| Nettoie ou met en forme une feuille | Fonctions Excel ou Power Query |
| Consolide des onglets, une seule personne | Power Query ou Office Scripts |
| Consolide des dizaines de fichiers, la nuit | Script Python sur un serveur |
| Prévient, copie, archive | Power Automate, n8n ou Make |
| Formulaires de saisie utilisés par une équipe | Application web |
| Calcule des montants facturés ou payés | Application web, avec historique |
| Sert une seule personne, sur un seul poste | Garder le VBA, le documenter |
La méthode de migration, pas à pas
1. Lire le code avant de le réécrire
Une macro ancienne contient des règles de gestion que personne n'a jamais écrites ailleurs : un arrondi particulier, une exception pour un client, un seuil codé en dur. Faites-les expliciter, une par une, et validez-les avec le métier. Certaines n'ont plus de raison d'être ; d'autres sont le cœur du savoir-faire de l'entreprise. Les outils d'IA aident à lire du VBA ancien et à en tirer une description en français, mais cette description doit être relue par quelqu'un qui connaît le métier.
2. Séparer la donnée, les règles et l'écran
Dans un classeur, les trois sont mélangés : les données sont dans les cellules, les règles dans les formules et les macros, l'écran est la feuille elle-même. Une migration réussie les sépare. La donnée va dans une structure propre (tables, identifiants uniques, pas de cellules fusionnées), les règles dans du code testé, l'écran dans un formulaire. C'est ce découpage qui rend la suite maintenable.
3. Reprendre les données historiques
Les classeurs accumulent des années de saisie libre : dates en texte, doublons, codes clients orthographiés de trois façons. La reprise est souvent le chantier le plus long. Notre article sur la reprise de données détaille la méthode : extraction, nettoyage, migration de test, validation par les utilisateurs.
4. Faire tourner les deux en parallèle
C'est l'étape qui sépare une migration sereine d'une migration risquée. Pendant une ou plusieurs périodes réelles (une clôture mensuelle, une paie, une série de devis), l'ancien classeur et la nouvelle solution traitent les mêmes données. On compare les résultats ligne par ligne. Chaque écart a une explication : soit la nouvelle version se trompe, soit l'ancienne macro se trompait depuis des années et l'équipe corrigeait à la main sans le dire. Le second cas est plus fréquent qu'on ne le croit.
5. Basculer, puis archiver
La bascule se fait à une date choisie, en dehors d'une période chargée. Le classeur d'origine est archivé en lecture seule, pas supprimé : il servira de référence en cas de doute pendant plusieurs mois.
Les erreurs qui coûtent cher
- Traduire ligne à ligne. Convertir mécaniquement du VBA en un autre langage reproduit aussi ses défauts : variables globales, gestion d'erreur absente, chemins de fichiers codés en dur. On réécrit le comportement, pas le code.
- Oublier les macros cachées. Les procédures
Workbook_OpenouWorksheet_Changes'exécutent sans bouton. Personne ne les cite dans l'inventaire, et c'est souvent elles qui portent les contrôles. - Vouloir tout migrer d'un coup. Commencez par la macro la plus risquée ou la plus utilisée, prouvez le résultat, puis continuez.
- Laisser le métier hors du projet. La personne qui utilise le classeur chaque jour sait quels boutons ne servent plus et quels contournements existent. Sans elle, on migre des fonctions mortes.
- Débloquer les macros pour tout le monde. Contourner le blocage de Microsoft en élargissant les emplacements approuvés règle le problème du jour et rouvre la porte que ce blocage fermait.
Quand garder le VBA
Le VBA reste un bon choix pour un outil personnel, utilisé sur un poste Windows, qui ne traite pas de données sensibles et dont l'auteur est présent. Dans ce cas, investissez plutôt dans trois choses peu coûteuses : une documentation d'une page (ce que fait chaque macro, avec quelles entrées), une copie du code dans un dossier sauvegardé, et la signature numérique des macros si le fichier circule, comme le recommande Microsoft.
Combien coûte un remplacement
Le coût dépend moins du nombre de lignes de VBA que de quatre facteurs : le nombre de règles de gestion à expliciter, l'état des données historiques, le nombre d'outils à relier (messagerie, comptabilité, ERP) et le nombre de profils d'utilisateurs. Une suppression au profit de Power Query se compte en jours ; une application web qui remplace un classeur utilisé par toute une équipe est un projet de plusieurs semaines. Pour comprendre ce qui fait le prix d'un développement, lisez le prix d'une application métier sur mesure.
Par où commencer
- Listez vos classeurs à macros et, pour chacun, qui en dépend et ce qui se passe s'il cesse de fonctionner.
- Classez chaque macro dans l'une des cinq familles ci-dessus.
- Traitez d'abord ce qui peut disparaître : tout ce que Power Query ou une formule moderne sait faire.
- Pour le reste, voyez la cible avant de la financer.
Quand la cible est une application, nous construisons un prototype visuel gratuit, présenté en visio sous 5 jours ouvrés, à partir de votre classeur : vos équipes voient leurs écrans de saisie avant que quoi que ce soit ne soit développé.