Comment utiliser ChatGPT pour créer une macro Excel en 2026
Utiliser ChatGPT pour créer une macro Excel en 2026
Utiliser ChatGPT pour créer une macro Excel permet de générer du code VBA, d’automatiser des tâches répétitives et de corriger plus rapidement les erreurs. Ce guide explique comment demander une macro à ChatGPT, où coller le code, comment l’exécuter, la tester et la sécuriser, avec un exemple concret adapté à Excel en 2026.
La méthode concerne principalement Excel installé sur Windows ou macOS, car les macros VBA ne s’exécutent pas directement dans Excel pour le web. Pour un fichier utilisé dans un navigateur, Office Scripts peut constituer une meilleure solution.
Qu’est-ce qu’une macro Excel créée avec ChatGPT ?
Une macro Excel est un programme qui automatise une ou plusieurs actions dans un classeur : mettre en forme un tableau, filtrer des données, créer une feuille, importer un fichier CSV, générer un rapport ou envoyer un e-mail via Outlook.
Dans la majorité des cas, une macro Excel repose sur le langage VBA, pour Visual Basic for Applications. ChatGPT peut :
- rédiger une macro VBA à partir d’une consigne ;
- expliquer chaque ligne du code ;
- adapter une macro à la structure d’un classeur ;
- corriger une erreur d’exécution ;
- ajouter des contrôles et des messages d’avertissement ;
- convertir une logique Excel en VBA ;
- générer un script Office Scripts pour Excel en ligne.
ChatGPT ne connaît toutefois pas automatiquement la structure exacte d’un fichier Excel. Une consigne vague comme « crée une macro pour mon tableau » produit souvent un code générique qui nécessite des adaptations.
Pourquoi utiliser ChatGPT pour générer une macro VBA ?
Gagner du temps sur les tâches répétitives
Une macro peut exécuter en quelques secondes des actions qui prendraient plusieurs minutes à chaque utilisation :
- supprimer des lignes vides ;
- harmoniser les formats ;
- trier des données ;
- regrouper des informations par client ;
- produire un rapport mensuel ;
- exporter plusieurs feuilles en PDF ;
- renommer des fichiers ;
- actualiser des tableaux croisés dynamiques.
Créer du code sans maîtriser complètement VBA
La connaissance des principes de base reste utile, mais il n’est pas nécessaire de mémoriser toute la syntaxe VBA. ChatGPT peut produire une première version à partir d’une description en français.
Le code généré doit cependant être lu, testé et contrôlé. Une macro peut fonctionner dans un classeur et échouer dans un autre si les noms de feuilles, les colonnes ou les formats diffèrent.
Corriger plus rapidement une erreur
Un message tel que « Erreur d’exécution 1004 » est souvent difficile à interpréter pour un débutant. ChatGPT peut analyser :
- le message d’erreur ;
- la ligne surlignée dans l’éditeur VBA ;
- le contexte d’exécution ;
- les noms des feuilles et des plages ;
- les différences entre Windows, macOS et Excel pour le web.
La meilleure demande consiste à fournir le code complet, l’erreur exacte et l’action qui déclenche le problème.
VBA ou Office Scripts : quelle technologie choisir en 2026 ?
Choisir VBA pour Excel installé sur l’ordinateur
VBA reste adapté dans les situations suivantes :
- le fichier est utilisé dans Excel de bureau ;
- la macro doit manipuler plusieurs classeurs locaux ;
- l’automatisation concerne Outlook ou d’autres applications Office ;
- l’entreprise utilise déjà des fichiers `.xlsm` ;
- le traitement dépend de fonctionnalités historiques d’Excel.
VBA fonctionne principalement dans les versions de bureau d’Excel sur Windows et macOS. Certaines fonctions spécifiques à Windows, comme les appels à l’API Windows ou certains contrôles ActiveX, ne sont pas compatibles avec macOS.
Choisir Office Scripts pour Excel sur le web
Office Scripts est généralement plus approprié lorsque :
- le fichier est stocké dans OneDrive ou SharePoint ;
- l’équipe travaille dans Excel pour le web ;
- l’automatisation doit être intégrée à Power Automate ;
- la compatibilité entre les environnements est importante.
Office Scripts utilise TypeScript. ChatGPT peut également générer ce type de script, mais il faut préciser explicitement dans la demande : « Génère un Office Script pour Excel sur le web, pas une macro VBA ».
Préparer la demande à envoyer à ChatGPT
La qualité du code dépend directement de la précision de la consigne. Une bonne demande doit décrire le contexte, les données, le résultat attendu et les limites à respecter.
Les informations à préciser
Avant de demander la macro, indiquer :
- La version d’Excel utilisée : Excel Microsoft 365, Excel 2021, Excel pour Mac ou Excel pour le web.
- La technologie souhaitée : VBA ou Office Scripts.
- Le nom des feuilles concernées.
- La ligne où commencent les en-têtes.
- Les colonnes utilisées, avec leur lettre ou leur nom.
- L’action à automatiser.
- Le résultat attendu.
- Les cas particuliers : cellules vides, doublons, dates invalides ou lignes protégées.
- Les éléments à ne pas modifier.
- Le niveau de sécurité souhaité : confirmation avant suppression, sauvegarde ou journal des actions.
Exemple de prompt efficace
Génère une macro VBA compatible avec Excel Microsoft 365 sur Windows. La feuille s’appelle « Ventes » et contient des en-têtes en ligne 1. Les données vont de la colonne A à la colonne H, mais le nombre de lignes varie. La macro doit détecter automatiquement la dernière ligne et la dernière colonne, mettre la ligne d’en-têtes en gras avec un fond bleu, ajuster automatiquement la largeur des colonnes et afficher un message à la fin. Elle ne doit supprimer aucune donnée. Ajoute une gestion d’erreur et explique où coller le code.
Cette formulation donne à ChatGPT suffisamment d’informations pour produire une première version exploitable.
Demander d’abord un plan
Pour les automatisations complexes, demander une explication avant le code :
Décris d’abord la logique de la macro étape par étape. Liste les hypothèses concernant les feuilles, les colonnes et les formats. Ne génère le code qu’après cette analyse.
Cette approche permet de détecter les mauvaises hypothèses avant de coller du code dans le classeur.
Exemple pratique : créer une macro de mise en forme
L’exemple suivant suppose que :
- la feuille active contient un tableau ;
- les en-têtes sont en ligne 1 ;
- les données commencent en colonne A ;
- la macro ne doit rien supprimer ;
- la dernière ligne et la dernière colonne peuvent varier.
Pour faciliter la copie sans bloc de code, chaque ligne ci-dessous doit être placée sur une ligne distincte dans l’éditeur VBA :
- `Sub MettreEnFormeRapport()`
- `Dim ws As Worksheet`
- `Dim derniereLigne As Long`
- `Dim derniereColonne As Long`
- `Dim celluleDerniere As Range`
- `On Error GoTo GestionErreur`
- `Set ws = ActiveSheet`
- `If Application.WorksheetFunction.CountA(ws.Cells) = 0 Then`
- `MsgBox "La feuille active est vide.", vbExclamation`
- `Exit Sub`
- `End If`
- `Set celluleDerniere = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)`
- `If celluleDerniere Is Nothing Then`
- `MsgBox "Aucune donnée détectée.", vbExclamation`
- `Exit Sub`
- `End If`
- `derniereLigne = celluleDerniere.Row`
- `Set celluleDerniere = ws.Cells.Find(What:="*", After:=ws.Cells(1, 1), LookAt:=xlPart, LookIn:=xlFormulas, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)`
- `derniereColonne = celluleDerniere.Column`
- `If ws.AutoFilterMode Then ws.AutoFilterMode = False`
- `With ws.Range(ws.Cells(1, 1), ws.Cells(1, derniereColonne))`
- `.Font.Bold = True`
- `.Font.Color = RGB(255, 255, 255)`
- `.Interior.Color = RGB(31, 78, 121)`
- `.AutoFilter`
- `End With`
- `With ws.Range(ws.Cells(1, 1), ws.Cells(derniereLigne, derniereColonne))`
- `.Borders.LineStyle = xlContinuous`
- `End With`
- `ws.Range(ws.Cells(1, 1), ws.Cells(1, derniereColonne)).EntireColumn.AutoFit`
- `MsgBox "Mise en forme terminée.", vbInformation`
- `Exit Sub`
- `GestionErreur:`
- `MsgBox "Une erreur est survenue : " & Err.Description, vbCritical`
- `End Sub`
Cette macro utilise la feuille active. Pour éviter une erreur liée à la mauvaise feuille sélectionnée, remplacer `Set ws = ActiveSheet` par `Set ws = ThisWorkbook.Worksheets("Ventes")`, à condition que la feuille s’appelle bien « Ventes ».
Où coller le code VBA généré par ChatGPT ?
Afficher l’onglet Développeur
Dans Excel pour Windows :
- Ouvrir Excel.
- Cliquer sur Fichier.
- Sélectionner Options.
- Ouvrir Personnaliser le ruban.
- Cocher Développeur.
- Valider avec OK.
Dans Excel pour macOS, le chemin peut être différent selon la version, mais l’onglet Développeur s’active depuis les préférences du ruban.
Insérer la macro dans un module
- Ouvrir le classeur concerné.
- Appuyer sur Alt + F11 sous Windows. Sur Mac, utiliser le raccourci affiché par Excel ou passer par l’onglet Développeur.
- Dans l’éditeur Visual Basic, sélectionner le classeur.
- Cliquer sur Insertion, puis Module.
- Coller le code généré par ChatGPT.
- Enregistrer le fichier au format Classeur Excel prenant en charge les macros (*.xlsm).
- Fermer l’éditeur VBA.
Une macro placée directement dans le code d’une feuille ou dans `ThisWorkbook` peut fonctionner, mais un module standard est généralement plus simple pour une macro lancée manuellement.
Comment exécuter une macro Excel ?
Plusieurs méthodes sont disponibles.
Depuis l’onglet Développeur
- Revenir dans Excel.
- Cliquer sur Développeur.
- Sélectionner Macros.
- Choisir le nom de la macro.
- Cliquer sur Exécuter.
Avec un raccourci clavier
Dans la fenêtre des macros, cliquer sur Options et attribuer un raccourci. Éviter les raccourcis qui remplacent des commandes Excel courantes.
Avec un bouton dans la feuille
- Ouvrir Développeur.
- Cliquer sur Insérer.
- Choisir un bouton dans les contrôles de formulaire.
- Dessiner le bouton dans la feuille.
- Sélectionner la macro à associer.
- Renommer le bouton avec une action explicite, par exemple Mettre en forme le rapport.
Un bouton est pratique pour les utilisateurs qui ne souhaitent pas ouvrir la liste des macros.
Comment tester une macro générée par ChatGPT ?
Une macro ne doit pas être lancée directement sur le fichier original lorsqu’elle modifie ou supprime des données.
Méthode de test recommandée
- Créer une copie du classeur.
- Remplacer les informations confidentielles par des données fictives.
- Tester avec un petit tableau.
- Vérifier le résultat ligne par ligne.
- Tester une feuille vide.
- Tester des cellules manquantes ou des colonnes supplémentaires.
- Vérifier que les noms de feuilles correspondent au code.
- Tester plusieurs fois la macro pour détecter les effets indésirables.
- Contrôler la taille du fichier après exécution.
- Conserver une version non modifiée du classeur.
Pour examiner le code, placer un point d’arrêt dans l’éditeur VBA en cliquant dans la marge à côté d’une ligne. La touche F8 permet ensuite d’exécuter la macro instruction par instruction.
Comment demander à ChatGPT de corriger une erreur VBA ?
Une demande de correction utile doit contenir quatre éléments :
- le code concerné ;
- le texte exact du message d’erreur ;
- la ligne surlignée par Excel ;
- l’action effectuée au moment du problème.
Exemple de demande :
Cette macro VBA affiche « Erreur d’exécution 1004 » sur la ligne `Range("A1:H100").AutoFilter`. La feuille peut contenir moins de 100 lignes et le tableau commence parfois en colonne B. Explique la cause, propose une correction dynamique et renvoie la macro complète. Ne supprime aucune donnée.
Demander une macro complète corrigée réduit le risque de mélanger des fragments incompatibles.
Erreurs fréquentes à surveiller
- Erreur 9 : le nom d’une feuille ou d’un classeur est incorrect.
- Erreur 13 : incompatibilité de type, souvent liée à une date ou à une valeur vide.
- Erreur 91 : un objet n’a pas été défini avec `Set`.
- Erreur 1004 : plage incorrecte, feuille protégée ou action non valide.
- Erreur de compilation : faute de syntaxe ou variable mal déclarée.
- Macro introuvable : code placé dans le mauvais emplacement ou fichier enregistré au format `.xlsx`.
Consignes importantes à donner à ChatGPT
Pour obtenir un code plus fiable, ajouter des contraintes précises :
- « N’utilise pas `Select` ni `Activate` sauf nécessité. »
- « Ne supprime aucune ligne sans demander une confirmation. »
- « Ajoute `Option Explicit`. »
- « Utilise des variables typées. »
- « Restaure le calcul automatique et la mise à jour de l’écran en cas d’erreur. »
- « Ne modifie que la feuille nommée “Ventes”. »
- « Ajoute un journal des actions dans une feuille appelée “Log”. »
- « Explique les hypothèses du code. »
- « Signale les fonctions incompatibles avec Excel pour Mac. »
Les instructions `Select` et `Activate` rendent souvent une macro plus fragile, car le résultat dépend de la feuille ou de la cellule sélectionnée au moment du lancement.
Sécurité : faut-il faire confiance à une macro générée par ChatGPT ?
Non. Une macro générée automatiquement doit être considérée comme du code non vérifié.
Risques possibles
Une macro peut :
- supprimer ou écraser des données ;
- modifier des fichiers présents sur l’ordinateur ;
- envoyer des informations par e-mail ;
- exécuter des commandes externes ;
- ralentir fortement Excel ;
- contenir une erreur logique difficile à détecter.
Il ne faut jamais demander à ChatGPT de traiter des données personnelles, commerciales ou confidentielles sans les anonymiser. Les règles de conservation et d’utilisation des données peuvent varier selon le compte, l’offre et les paramètres de l’organisation. Vérifier les conditions officielles du service utilisé avant de transmettre un fichier.
Bonnes pratiques
- Ne jamais activer globalement toutes les macros.
- Ouvrir avec prudence les fichiers reçus par e-mail.
- Utiliser une copie du classeur pour les tests.
- Refuser une macro dont le fonctionnement n’est pas compris.
- Vérifier les instructions `Shell`, les accès fichiers et les envois Outlook.
- Utiliser une signature numérique dans un contexte professionnel.
- Placer les fichiers fiables dans un emplacement approuvé uniquement si la politique informatique l’autorise.
Combien coûte la création d’une macro avec ChatGPT ?
La génération du code peut être incluse dans une offre gratuite ou payante, selon le service, le compte et les limites en vigueur en 2026. Les tarifs et les quotas pouvant évoluer, consulter la page officielle de l’offre utilisée avant tout achat.
Le véritable coût dépend surtout de la complexité de l’automatisation :
- une macro de mise en forme peut être préparée en quelques minutes ;
- une importation de fichiers avec contrôles nécessite davantage de tests ;
- un processus impliquant plusieurs classeurs, Outlook, des droits d’accès ou une journalisation peut demander une validation technique approfondie.
Le temps gagné à la génération du code ne remplace pas le temps de test, de documentation et de maintenance.
Quand éviter une macro VBA ?
VBA n’est pas toujours la meilleure solution. Une formule Excel suffit parfois pour une transformation simple. Power Query est souvent plus adapté à l’importation, au nettoyage et à la combinaison de fichiers. Power Automate convient davantage aux processus déclenchés automatiquement dans Microsoft 365.
Éviter VBA lorsque :
- le fichier doit fonctionner dans Excel pour le web ;
- plusieurs utilisateurs travaillent simultanément dans le même classeur ;
- l’entreprise bloque les macros ;
- l’automatisation concerne principalement des flux de données ;
- une solution sans code serait plus facile à maintenir.
Avant de générer une macro, demander à ChatGPT :
Compare VBA, Office Scripts, Power Query et Power Automate pour cette automatisation. Présente les avantages, les limites et la solution la plus adaptée à Excel sur Windows, Mac et le web.
Prompts utiles pour aller plus loin
Importer plusieurs fichiers CSV
Génère une macro VBA qui parcourt tous les fichiers CSV d’un dossier sélectionné, importe les données dans une feuille « Import », ajoute le nom du fichier dans une colonne et ignore les fichiers déjà traités. Demande confirmation avant toute modification et ajoute une gestion d’erreur.
Nettoyer des données
Crée une macro VBA qui supprime les espaces inutiles dans les colonnes A à D, convertit les dates valides, signale les dates incorrectes dans une feuille « Erreurs » et ne supprime aucune ligne.
Produire un rapport
Génère une macro VBA qui regroupe les ventes par commercial à partir de la feuille « Données », crée une feuille « Rapport », ajoute les totaux et applique une mise en forme professionnelle. Le code doit fonctionner même si le nombre de lignes change.
Créer un Office Script
Écris un Office Script TypeScript pour Excel sur le web. La feuille « Ventes » contient les en-têtes en ligne 1. Le script doit détecter automatiquement la plage utilisée, appliquer un format de tableau et retourner un message de confirmation. Ne génère pas de VBA.
Points clés à retenir
- ChatGPT peut générer une macro Excel VBA, mais le code doit toujours être vérifié.
- Une consigne précise doit mentionner les feuilles, les colonnes, les lignes d’en-têtes et le résultat attendu.
- Le code VBA se colle dans un module standard depuis l’éditeur Visual Basic.
- Un fichier contenant une macro doit être enregistré au format `.xlsm`.
- Excel pour le web n’exécute pas directement les macros VBA : Office Scripts constitue une alternative.
- Tester la macro sur une copie avec des données fictives avant toute utilisation réelle.
- Ne jamais activer aveuglément des macros provenant d’une source inconnue.
- Pour les traitements de données, comparer VBA avec Power Query, Office Scripts et Power Automate.
- La meilleure utilisation de ChatGPT consiste à générer une première version, à l’expliquer, à la tester puis à l’améliorer progressivement.





