ITSkillsCenter
Bureautique & Productivité

Excel : connecter une API REST avec Power Query

3 min de lecture
Miniature - Excel : connecter une API REST avec Power Query

Power Query comme client API REST

Power Query peut interroger directement n’importe quelle API REST pour intégrer en temps réel des données externes : cours de devises, météo, statistiques e-commerce, CRM. Plus besoin de copier-coller manuel. Un rafraîchissement clic droit met à jour l’intégralité de votre tableau de bord.

Étape 1 : accéder à l’API

Données > Obtenir des données > À partir d’autres sources > À partir du Web. Saisissez l’URL complète de l’endpoint. Exemple pour récupérer le cours EUR/USD via exchangerate-api :

https://api.exchangerate-api.com/v4/latest/EUR

Étape 2 : parser le JSON

Power Query détecte automatiquement le JSON et affiche le contenu structuré. Cliquez sur Record pour naviguer dans les noeuds. Utilisez Convertir en table pour aplatir la structure.

Étape 3 : authentification

Beaucoup d’API exigent une clé API. Deux modes :

  • Clé en URL : https://api.exemple.com/data?api_key=XXX
  • Clé en header : nécessite le dialogue avancé

Dialogue avancé de la requête Web : onglet Options > Ajouter un en-tête, nom = Authorization, valeur = Bearer XXX.

Étape 4 : gestion de la pagination

Les API limitent souvent à 100 résultats par page. Solution : fonction récursive en M.

let
  GetPage = (page as number) =>
    let
      url = "https://api.exemple.com/clients?page=" & Number.ToText(page),
      data = Json.Document(Web.Contents(url)),
      items = data[results]
    in
      items,
  AllPages = List.Generate(
    () => [page = 1, items = GetPage(1)],
    each List.Count([items]) > 0,
    each [page = [page] + 1, items = GetPage([page] + 1)],
    each [items]
  ),
  Combined = List.Combine(AllPages),
  Table = Table.FromList(Combined, Splitter.SplitByNothing())
in
  Table

Cas pratique 1 : tableau de bord taux de change FCFA

Exporter quotidiennement les taux EUR, USD, GBP vs FCFA. Graphique d’évolution hebdomadaire. Utile pour une PME qui achète en Europe et vend en FCFA.

Cas pratique 2 : CA Stripe en direct

Connexion à l’API Stripe /v1/charges. Récupération des transactions du mois. Consolidation dans un tableau de bord ventes. Remplace l’export manuel du dashboard Stripe.

Cas pratique 3 : leads HubSpot

API HubSpot /crm/v3/objects/contacts. Chaque lundi, rapport sur les leads créés la semaine précédente, répartition par source, lead scoring. Déclenche des actions commerciales ciblées.

Étape 5 : sécurité des clés

Ne jamais coder la clé API en dur dans la requête visible. Solution : stocker la clé dans un paramètre Power Query ou une cellule nommée sur une feuille masquée et protégée par mot de passe.

Étape 6 : gestion des erreurs

Power Query échoue sans gracier si l’API répond 500. Encapsulez avec try…otherwise :

let result = try Json.Document(Web.Contents(url)) otherwise null in result

Étape 7 : rafraîchissement automatique

Données > Propriétés de la requête > cochez Actualiser toutes les X minutes. Idéal pour un écran de monitoring. Alternative : macro VBA déclenchée à l’ouverture du classeur.

Limites

Power Query fait des requêtes synchrones. Pour des volumes importants (plus de 10 000 appels), préférez Python avec pandas puis export CSV consommé par Power Query. La combinaison hybride est souvent optimale.

Conclusion

Power Query transforme Excel en véritable plateforme d’intégration de données. Toutes les API modernes deviennent sources exploitables sans écrire une ligne de Python. Compétence transversale précieuse pour tout analyste.

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité