Comment connecter Excel à une API avec Power Query, Graph ou VBA
Tu connais ce moment du vendredi soir où tu ouvres trois exports d'ERP, deux fichiers de ventes et un onglet de suivi budgétaire, puis tu passes une heure à recoller des colonnes, corriger des dates et relancer un tableau croisé qui ne veut plus s'actualiser. À la fin, tu n'as pas vraiment “analysé” tes chiffres, tu as surtout fait du nettoyage manuel. C'est exactement là que l’Excel API change la semaine d'un comptable ou d'un contrôleur de gestion, parce qu'elle permet de récupérer, transformer et mettre à jour des données sans repartir de zéro à chaque clôture.
Dans Excel, l'automatisation ne se limite plus aux macros ou aux copier-coller. Microsoft a déjà installé des briques natives pour ingérer des données financières et produire des calculs avancés, comme la fonction HISTORIQUE.ACTIONS, qui renvoie des données historiques d'un instrument financier sous forme de matrice, avec jusqu'à 6 propriétés supplémentaires en sortie, ou encore WorksheetFunction.Forecast_ETS_STAT, qui renvoie une statistique de prévision avec 8 types de statistiques possibles via un paramètre compris entre 1 et 8 source Microsoft. Tu vois l'idée, Excel n'est plus seulement un tableau, c'est aussi un moteur de données.
Le vrai gain, c'est de choisir la bonne voie selon ton métier. Un profil finance peut rester dans un classeur bien structuré, un data analyst peut aller vers une intégration plus large, et un développeur peut piloter des fichiers depuis le cloud. Le piège, c'est de lire des guides qui listent des API sans te dire laquelle t'évite vraiment les soirées perdues.
Le casse-tête du vendredi soir que tu connais trop bien
Le scénario est toujours le même. Tu reçois un export de l'ERP, un autre du CRM, un troisième du service achats, puis le directeur te demande un reporting propre pour le lundi matin. Tu commences par filtrer, puis par masquer des colonnes, puis par réparer des formules qui cassent dès qu'un fichier arrive avec un intitulé différent.
Au fond, le problème n'est pas Excel. Le vrai sujet, c'est la répétition d'une tâche qui devrait suivre un flux clair, avec des données qui entrent, se transforment, puis repartent sans que tu refasses tout à la main. Une Excel API sert justement à structurer ce chemin, pour que les tableaux arrivent déjà dans le bon format au lieu de dépendre d'un traitement manuel à chaque clôture.
Dans les équipes finance, contrôle de gestion ou analyse de données, c'est souvent là que la semaine se complique. Un export propre le mardi peut devenir un casse-tête le vendredi si le nom d'un onglet change, si une source se décale ou si un fichier n'a pas la même structure. Une API évite de tout reconstruire à chaque fois, parce qu'elle donne un mode d'accès stable aux données et aux actions dans Excel. Eurostat montre d'ailleurs comment Excel Power Query sert de passerelle vers les données de son API, dans le guide Eurostat sur Excel Power Query.
Ce que tu gagnes vraiment
Tu réduis la part de bricolage. Quand la source reste stable, une requête bien conçue peut charger les données, les nettoyer et les remettre en forme dans une table prête à l'emploi. Le fichier circule alors plus facilement entre collègues, sans finir en version “finale_v7_def_2.xlsx”.
Règle simple, si tu refais la même manipulation chaque semaine, c'est probablement une tâche à automatiser dans Excel.
L'objectif n'est pas de tout coder. L'objectif, c'est de savoir si tu dois utiliser Power Query, Microsoft Graph, Office.js ou garder une solution plus classique selon ton besoin métier.
C'est quoi une Excel API concrètement
Une API dans Excel fonctionne comme un comptoir de commande. Tu formules une demande précise, le service la traite, puis la réponse revient dans ton classeur sans intervention manuelle à chaque étape. Pour un comptable ou un data analyst, l'intérêt est simple, on remplace des copier-coller répétitifs par un échange structuré entre Excel et une source externe.
Les trois usages à distinguer
Le premier usage, c'est lire des données externes. Tu peux récupérer des cours de bourse, des taux de change, des indicateurs publics ou des données issues d'un outil métier. Excel sait aussi gérer certaines données historiques et des fonctions de prévision directement dans le fichier, comme le montre la documentation Microsoft sur HISTORIQUE.ACTIONS et Forecast_ETS_STAT.
Voici ce geste en quelques secondes dans cette vidéo :
Le deuxième usage, c'est automatiser des actions dans Excel. Selon l'API choisie, tu peux créer un onglet, écrire une formule, mettre en forme une plage ou piloter un graphique. Le troisième usage, c'est faire dialoguer Excel avec d'autres outils comme un ERP, un CRM ou une couche de reporting. Dans un contexte finance, cela sert par exemple à rapprocher des données d'un fichier budget avec des extractions de gestion, sans refaire toute la mise en page à la main.

Le vocabulaire de base sans prise de tête
Un endpoint, c'est l'adresse précise à laquelle tu envoies la demande. Un jeton sert à prouver que tu as le droit d'appeler l'API. Le format JSON ressemble à une structure de données organisée en paires clé-valeur, pratique pour transporter des réponses lisibles par les outils modernes.
À retenir, tu n'as pas besoin de devenir développeur pour comprendre le principe. Tu dois surtout savoir ce que tu demandes, à qui, et sous quelle forme la réponse revient dans ton classeur.
Dans Excel, cette logique peut passer par Power Query pour charger les données, ou par des API plus techniques pour automatiser des actions sur le fichier lui-même. Si tu veux visualiser la logique d'un aller-retour simple entre requête et réponse, la fonction service web dans Excel aide à comprendre comment Excel interroge une source externe, puis récupère le résultat dans une cellule ou une table.
Les 5 familles d'API Excel et quand les utiliser
Le bon choix ne dépend pas du jargon, mais de ton contexte réel. Ton environnement, ton niveau d'autonomie technique et le type d'automatisation que tu veux mettre en place orientent la décision. Si tu travailles en compta, en contrôle de gestion ou en data, tu n'iras pas vers la même famille d'API pour un simple rafraîchissement de reporting, pour une intégration cloud ou pour une extension interactive dans Excel.
| API | Public cible | Cas d'usage principal | Pré-requis techniques |
|---|---|---|---|
| Microsoft Graph / Excel REST API | Développeurs, équipes IT, automatisation cloud | Lire ou écrire dans un classeur stocké dans OneDrive for Business, SharePoint ou un drive de groupe | Classeur .xlsx uniquement, intégration cloud, gestion d'authentification |
| Office.js | Développeurs web, créateurs d'add-ins | Ajouter une expérience interactive dans Excel, multiplateforme | Connaissances JavaScript et prise en compte des requirement sets |
| Office Scripts | Utilisateurs avancés, équipes M365 | Automatiser des tâches dans Excel sur le web sans VBA | TypeScript, environnement Microsoft 365 |
| VBA / COM | Utilisateurs historiques Windows | Maintenir des macros existantes et automatiser des classeurs legacy | Environnement Windows, macros, modèle historique |
| Power Query | Comptables, contrôleurs de gestion, data analysts métier | Charger et transformer des données sans coder lourdement | Comprendre les requêtes, les étapes de transformation et le rafraîchissement |
Pour un contrôleur de gestion, la lecture du tableau est simple. Si la donnée vit déjà dans Microsoft 365 et que tu dois agir sur un classeur précis, Microsoft Graph / Excel REST API est la voie la plus directe. Si tu veux enrichir Excel avec une interface métier, Office.js prend le relais. Si ton besoin ressemble plutôt à une suite d'actions répétables dans Excel sur le web, Office Scripts répond bien. Si tu reprends un environnement existant sous Windows avec des macros déjà en place, VBA / COM reste cohérent. Si ton vrai besoin est de reprendre des exports, les nettoyer, les rapprocher et les charger dans un modèle de reporting, Power Query est souvent le premier outil à considérer.
Le point bloquant à connaître tout de suite, c'est le format. Microsoft Graph ne prend en charge que les classeurs au format .xlsx. Les fichiers .xls ne sont pas supportés, donc une migration de format est nécessaire avant toute automatisation REST sur un classeur hérité Microsoft Learn sur le concept Excel Graph. Dans une direction financière, ce détail suffit parfois à expliquer pourquoi un ancien modèle ne peut pas passer tel quel dans une automatisation moderne.
Comment lire ce tableau sans te tromper
Si ton objectif est de fiabiliser un reporting mensuel, Power Query suffit souvent, surtout quand tu dois enchaîner extraction, nettoyage et chargement sans écrire beaucoup de code. Si tu dois exposer un classeur à un système externe, Microsoft Graph devient plus logique, car il agit sur un fichier précis dans le cloud. Si tu construis une extension distribuable à plusieurs utilisateurs, Office.js a plus de sens, parce qu'il permet de créer une expérience intégrée dans Excel.
Pratique de terrain, garde VBA pour le patrimoine existant, pas pour lancer un chantier neuf si tu peux éviter.
Pour comparer les usages côté calcul et automatisation, tu peux aussi t'appuyer sur les contenus du Dojo sur l'automatisation Excel, surtout si tu pars d'un usage métier et pas d'un projet purement technique.
Comprendre l'authentification et l'architecture
Une API sécurisée ne répond pas “par magie”. Elle attend une preuve d'identité, puis elle vérifie si ta demande est autorisée. C'est là qu'entrent Azure AD et OAuth, qui servent à gérer l'accès sans exposer tes identifiants dans chaque requête.
Le flux classique en 4 étapes
- Inscrire l'application dans Azure, pour déclarer qui appelle quoi.
- Obtenir un token, c'est le jeton d'accès transmis à l'application.
- Envoyer la requête avec l'en-tête
Authorization: bearer votreToken. - Récupérer la réponse si le droit d'accès est valide.
Microsoft explique que l'API Excel s'intègre à Microsoft Graph, et qu'on agit sur un classeur précis stocké dans OneDrive for Business, SharePoint ou un drive de groupe, via des chemins comme https://graph.microsoft.com/v1.0/me/drive/items/{id}/workbook/ ou .../root:/{item-path}:/workbook/ vue d'ensemble de l'API Excel Graph. L'idée est simple, l'API ne parle pas à “Excel en général”, elle agit sur un document précis.
Exemple de lecture côté Power Query
Dans un contexte de contrôle de gestion, tu peux brancher Power Query sur un endpoint interne, charger les données via Données > À partir du Web, puis dérouler les objets imbriqués, par exemple de List vers Record, avant de charger le résultat avec Fermer et charger. Ce schéma est très pratique pour récupérer une réponse propre dans une table exploitable.

Ce que les responsables IT regardent
Microsoft documente aussi des requirement sets pour l’Excel JavaScript API. Par exemple, ExcelApi 1.16 est pris en charge sur Excel Web, Windows Microsoft 365, Mac et iPad, tandis que ExcelApi 1.10 est déjà disponible sur Windows version 1907 / Office 2021 et Mac 16.30 requirement sets Excel API. Cette granularité compte quand un parc est mixte, parce qu'elle aide à éviter les surprises au moment du déploiement.
Le bon réflexe, c'est de vérifier l'environnement avant d'écrire la moindre automatisation.
Les pièges que personne ne te raconte en production
Les démos donnent souvent une impression trop propre. Une requête passe, le refresh se lance, la table se remplit, puis on suppose que l'automatisation est prête. En réalité, les complications arrivent surtout quand le fichier circule entre plusieurs mains, ou quand il doit tourner sans surveillance dans un contexte de clôture, de contrôle de gestion ou de reporting partagé.
Les pannes les plus fréquentes
- Jeton expiré sans alerte claire, puis erreur 401 au refresh.
- Quotas dépassés sur une API externe ou sur Microsoft Graph.
- Pagination incomplète, quand la réponse s'arrête avant d'avoir tout récupéré.
- Schémas JSON imbriqués, qui cassent Power Query dès qu'un niveau supplémentaire apparaît.
- Rafraîchissement partiel, qui laisse le classeur dans un état incohérent si une étape échoue en milieu de chaîne.
Ces cas sont rarement mis en avant dans les guides, pourtant ce sont eux qui bloquent une équipe en production. Un comptable qui attend une extraction mensuelle, ou un data analyst qui alimente un reporting récurrent, a besoin d'une connexion qui tient dans la durée, pas seulement d'un exemple qui fonctionne une fois.
Le point sensible change selon l'outil choisi. Avec Power Query, le problème vient souvent de la structure de réponse ou du schéma qui évolue. Avec Microsoft Graph ou une API externe, les sujets de jeton, de quota et de pagination prennent vite le dessus. Dans les deux cas, il faut penser comme si le fichier devait encaisser un changement de contexte, pas seulement un test local.
Les garde-fous à mettre en place
Prévois un onglet de logs dédié, avec l'heure du dernier refresh, l'état de la requête et le message d'erreur s'il y en a un. Ce petit historique aide à distinguer une panne ponctuelle d'un vrai problème de configuration, un peu comme une piste d'audit dans un dossier de clôture.
Garde aussi un schéma figé autant que possible, parce qu'un changement de structure dans l'API peut casser une transformation qui marchait depuis des mois. Si tu sais qu'un champ peut arriver ou disparaître, traite-le explicitement plutôt que de laisser Power Query l'interpréter au hasard. Quand c'est possible, ajoute une logique de reprise pour retenter un appel au lieu d'abandonner tout le classeur dès la première erreur.
Bon réflexe, si un fichier alimente un reporting partagé, considère qu'un refresh doit être auditable avant d'être “rapide”.
La configuration d'authentification mérite aussi un contrôle manuel. Certaines API demandent une préparation précise, comme l'ajout d'un en-tête Authorization, puis une actualisation complète des données. Ce genre de détail évite de croire qu'une connexion est stable alors qu'elle dépend encore d'une manipulation locale.
Un autre piège vient de l'interface entre les outils. Une API peut renvoyer une réponse correcte, mais si le classeur attend une table plate et reçoit une structure imbriquée, la transformation casse au mauvais endroit. C'est souvent là que les équipes perdent du temps, parce que le problème ressemble à une erreur Excel alors qu'il s'agit en fait d'un contrat de données mal défini.
Pour un usage en production, le bon réflexe est simple. Teste le cas nominal, puis teste le jeton expiré, le champ manquant, la réponse partielle et la surcharge de quota. C'est ce passage qui sépare une automatisation de démonstration d'un flux fiable pour la finance ou le contrôle de gestion.
Quelle API choisir selon ton profil métier
Le meilleur choix, c'est celui qui correspond à ton quotidien. Un comptable n'a pas les mêmes besoins qu'un data analyst, et un développeur qui livre un add-in ne cherche pas la même chose qu'un contrôleur de gestion qui veut juste fiabiliser son reporting mensuel.
Si tu es comptable ou contrôleur de gestion
Commence par Power Query, en suivant au besoin notre leçon qui le reprend depuis le début. Dans Power Query, tu peux brancher des sources publiques ou internes, puis transformer les données sans écrire une ligne de code complexe. C'est la bonne porte d'entrée quand tu veux automatiser un rapprochement, un suivi budgétaire ou un tableau de bord récurrent.
Si tu es data analyst
Regarde Microsoft Graph et, selon le contexte, Power Automate pour orchestrer les échanges autour du classeur. Là, Excel devient un composant d'un flux plus large, avec des fichiers stockés dans le cloud et des traitements plus documentés. Le choix est logique si tu dois industrialiser une chaîne de données plutôt que juste préparer un reporting.
Si tu construis une solution pour plusieurs utilisateurs
Office.js est plus pertinent, parce qu'il sert à créer un add-in distribuable. Tu raisonnes alors en expérience utilisateur, compatibilité et maintenance, pas seulement en formule ou en import de fichier.
Si tu as déjà une base VBA
Ne jette pas tout. Garde les macros qui fonctionnent, puis ajoute Power Query là où tu gagnes le plus en stabilité. Ce mélange est souvent le plus réaliste dans les équipes finance qui ont un historique fort sur Excel.
Critère de décision simple, plus ton besoin est métier et récurrent, plus Power Query est rationnel. Plus ton besoin est cloud, partagé ou distribué, plus tu montes vers Graph ou Office.js.
Si tu veux structurer ton apprentissage sans te disperser, Le Dojo Club est aussi une option à regarder pour travailler les automatismes Excel, les requêtes et les bases de transformation de données, surtout si tu préfères apprendre avec un cadre clair plutôt que seul face à l'outil.
Ton premier appel API en 5 minutes et FAQ finale
Tu peux tester un premier appel sans monter une architecture lourde. Le but est simple, vérifier le trajet complet, de l'endpoint jusqu'à la table Excel, puis garder le refresh et la gestion des erreurs pour la suite. Si tu travailles en finance ou en contrôle de gestion, ce premier essai sert surtout à valider que la donnée arrive proprement avant de brancher le fichier sur un vrai process de reporting.
Mini-tutoriel à suivre
Commence par ouvrir Excel, puis va dans l'onglet Données. Clique sur Obtenir des données > À partir du Web, puis colle l’URL de l'API publique dans la zone prévue.
Si l'API demande une authentification, ajoute la clé ou le jeton d'accès à ce moment-là. Dans Power Query, transforme la réponse, déroule les objets si besoin, puis valide avec Fermer et charger. Pour une logique plus durable, la méthode expliquée dans ce guide sur comment utiliser Power Query aide à structurer proprement les requêtes, surtout quand tu dois refaire le même import plusieurs fois.
Tu peux aussi passer par des paramètres dans l'URL, comme units=metric, si l'API attend des options de requête, ou ajouter un en-tête Authorization au format bearer yourAPIToken quand la source le demande. L'idée est de garder le test simple au départ, puis de nettoyer la requête une fois que la structure répond correctement.

Astuce bonus
Nommer chaque requête Power Query t'évitera de te perdre quand le classeur grossit. Crée aussi une feuille Logs_Refresh pour tracer les erreurs et l'état des actualisations, surtout si plusieurs personnes utilisent le fichier. En pratique, c'est ce qui te permet de voir rapidement quelle source a répondu, laquelle a échoué, et à quel moment le problème est apparu.
FAQ
Mon Excel est-il compatible ?
Si tu veux utiliser l'API Excel via Microsoft Graph, le point clé est le format .xlsx, pas .xls. Pour les autres approches, vérifie surtout la version installée et le périmètre de compatibilité de la fonctionnalité visée.
Comment éviter que ça plante au refresh ?
Travaille avec une structure stable, ajoute des logs, et anticipe les erreurs de jeton, de pagination et de schéma. Les problèmes apparaissent rarement au premier appel, ils arrivent surtout quand le fichier doit tenir dans le temps et être relancé par plusieurs personnes.
Je commence par VBA ou par Power Query ?
Si ton besoin est de charger et transformer des données, commence par Power Query. Si tu dois piloter un classeur déjà rempli de macros Windows, garde VBA pour l'existant et ajoute l'API là où elle te simplifie la vie.
En résumé
- Choisis la bonne API selon ton profil, Power Query pour le métier, Graph pour le cloud, Office.js pour l'add-in.
- Vérifie le format et l'authentification avant d'automatiser, surtout si tu travailles avec des classeurs hérités.
- Prévois la production dès le départ, avec logs, reprise et schéma stable, sinon ton refresh finit par casser au pire moment.