Qu'est-ce que la fonction SERVICEWEB ?
Tu sors SERVICEWEB (WEBSERVICE en anglais) le jour où une donnée change ailleurs que dans ton classeur, et que copier-coller à la main devient une tâche qui se répète à chaque rapport. C'est le raccourci qui te dispense d'un script externe pour aller chercher une information à jour directement depuis une cellule.
C'est elle qui te permet de récupérer un taux de change en temps réel, d'interroger une API météo, de brancher ton tableau sur un flux de données produit ou d'automatiser des rapports qui se mettent à jour à chaque recalcul. Combinée avec FILTRE.XML pour le XML ou avec CHERCHE et STXT pour le JSON, elle transforme Excel en véritable client REST.
Syntaxe
=SERVICEWEB(url)Clique sur un argument pour aller à son explication.
SERVICEWEB est disponible uniquement dans Excel pour Windows et Mac (version bureau). Elle n'est pas disponible dans Excel Online ni dans les applications mobiles.

Comprendre chaque paramètre de la fonction SERVICEWEB
url
: l'adresse URL complète du service web à appelerElle doit commencer par http:// ou https:// et peut inclure des paramètres de requête (?param=valeur&autre=valeur2).
Tu peux construire l'URL dynamiquement en concaténant des valeurs de cellules : ="https://api.exemple.com/data?city="&A1 te permet de changer la requête simplement en modifiant la cellule A1. Pour les caractères spéciaux dans les paramètres (espaces, accents), utilise ENCODERURL() pour les encoder correctement.

Exemples pratiques pas à pas
Comment récupérer la réponse d'une API avec la fonction SERVICEWEB
Une facture en dollars datée du 2 janvier 2024 doit être convertie au taux de ce jour-là, et ton commissaire aux comptes voudra savoir d'où sort ce taux. Aller le chercher à la main sur un site puis le recopier, c'est une ligne de plus à justifier et une faute de frappe possible. La fonction SERVICEWEB interroge l'API directement depuis la cellule.
- 1Dans une cellule, écris
=SERVICEWEB(. - 2En 1er argument : clique sur la cellule qui contient l'adresse à interroger,
A2. Elle porte une URL complète qui doit commencer parhttps://ouhttp://, faute de quoi la fonction renvoie#VALEUR!. Garder l'adresse dans une cellule plutôt que de la taper entre guillemets dans la formule te permet de la changer sans rouvrir celle-ci. - 3Ferme la parenthèse et appuie sur Entrée. La cellule reçoit alors la réponse brute du serveur, et la fonction relance l'appel à chaque recalcul de la feuille.
=SERVICEWEB(A2)Comment isoler une valeur de la réponse en combinant la fonction SERVICEWEB, la fonction STXT et la fonction CHERCHE
Le taux est bien arrivé dans ta feuille, mais il est prisonnier d'une ligne de JSON qu'Excel ne sait pas lire tout seul. Multiplier un montant par cette réponse rendrait une erreur, puisqu'il ne s'agit pas d'un nombre. Trois fonctions texte suffisent à en extraire la valeur et à la rendre calculable.
- 1Dans une cellule, écris
=CNUM(. - 2En 1er argument : écris tout le bloc qui isole le taux et referme-le,
SUBSTITUE(STXT(A2; CHERCHE("""USD"":"; A2) + 6; 6); "."; ","). Il repère le marqueur"USD":dans la réponse, en prélève les six caractères qui le suivent et remplace leur point par une virgule, mais il rend encore du texte. Les guillemets sont triplés autour deUSDparce qu'ils font partie du texte cherché, ce qui en fait la principale source de fautes de frappe. - 3Ferme la parenthèse de la fonction CNUM et appuie sur Entrée. C'est elle qui transforme ce texte en vrai nombre,
1,0956, avec lequel tu peux enfin multiplier un montant.
=CNUM(SUBSTITUE(STXT(A2; CHERCHE("""USD"":"; A2) + 6; 6); "."; ","))"USD":, la fonction STXT prélève les six caractères qui le suivent, et la conversion finale transforme ce texte en vrai nombre 1,0956, avec lequel tu peux multiplier un montant.Comment gérer une erreur de service en combinant la fonction SERVICEWEB et la fonction SIERREUR
Un serveur tombe, un pare-feu d'entreprise bloque l'adresse, une API change de chemin : ta feuille se couvre alors d'erreurs jusque dans les totaux, et personne ne sait si le problème vient du réseau ou d'une formule. Le fichier devient illisible au pire moment. La fonction SIERREUR intercepte la panne et la remplace par un message clair.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris l'appel dont tu surveilles le résultat et referme-le,
SERVICEWEB(A2). C'est lui qui s'exécute normalement tant que le service répond, et dont l'erreur éventuelle sera interceptée par la fonction. - 3En 2ᵉ argument : saisis le texte à afficher quand l'appel échoue,
"Service indisponible". Écris un message qui nomme la cause, car un simple""masquerait la panne et laisserait croire que l'API a renvoyé une valeur vide. - 4Ferme la parenthèse et appuie sur Entrée. La fonction SIERREUR intercepte toutes les erreurs sans distinction, si bien qu'une adresse mal écrite et un serveur en panne renvoient ici le même message ; teste l'adresse sans ce filet avant de conclure que le service est en cause.
=SIERREUR(SERVICEWEB(A2); "Service indisponible")#VALEUR! sur cette adresse introuvable, et cette erreur contamine toutes les cellules qui s'appuient dessus. Enveloppée dans la fonction SIERREUR, elle rend un message lisible qui dit à ton lecteur que le service n'a pas répondu, et non que son fichier est cassé.
Les erreurs fréquentes avec la fonction SERVICEWEB
Branche Excel sur une API et tu rencontreras vite l'un de ces trois écueils. Le plus fréquent est le #VALEUR! : il surgit dès qu'un espace ou un accent traîne dans tes paramètres d'URL sans passer par ENCODERURL, ou que l'adresse oublie son http://.
Le #CONNEXION! raconte une autre histoire : la formule est bonne, mais le serveur ne répond pas (réseau coupé, pare-feu d'entreprise). Et même quand tout marche, une grosse réponse peut être coupée net dès qu'elle dépasse les 32 767 caractères que tient une cellule.
Erreur #VALEUR! : URL invalide ou paramètres non encodés
L'URL ne commence pas par http:// ou https://, contient des espaces non encodés, ou inclut des caractères spéciaux (accents, &, =) dans les paramètres sans encodage.
Solution : Vérifie que l'URL commence bien par http:// ou https://. Pour les paramètres contenant des espaces ou des caractères spéciaux, enveloppe chaque paramètre dans ENCODERURL() avant de le concaténer : =SERVICEWEB("https://api.exemple.com/search?q="&ENCODERURL(A1)).
Erreur #CONNEXION! : serveur inaccessible
Le serveur est inaccessible depuis ton réseau : connexion internet coupée, pare-feu d'entreprise bloquant les requêtes, serveur en maintenance ou URL incorrecte.
Solution : Teste l'URL directement dans ton navigateur pour vérifier qu'elle fonctionne. Si tu es sur un réseau d'entreprise, contacte le service informatique pour autoriser les requêtes HTTP sortantes depuis Excel. Utilise SIERREUR pour gérer l'erreur proprement dans le fichier.
Cellule tronquée : réponse dépassant 32 767 caractères
SERVICEWEB est limitée à 32 767 caractères (limite d'une cellule Excel). Les API qui retournent de grandes listes ou des réponses volumineuses dépassent facilement cette limite.
Solution : Filtre les données côté serveur en ajoutant des paramètres à l'URL (pagination, filtres, champs spécifiques). Pour les grandes réponses, Power Query est la bonne solution : il n'a pas de limite de taille et gère nativement JSON et XML.

SERVICEWEB vs Power Query vs RTD : quelle méthode pour importer des données web ?
Garde SERVICEWEB quand tu veux une requête web qui vit dans une cellule et se rafraîchit au recalcul, sans quitter tes formules : taux de change, petite réponse XML ou JSON sous les 32 767 caractères. Dès que la réponse gonfle ou que la structure se complique, passe à Power Query, qui n'a pas de limite de taille et parse nativement le JSON.
RTD ne joue pas dans la même cour : il te faut un serveur dédié, mais en échange tu obtiens un flux poussé en continu, là où SERVICEWEB attend sagement ton F9.
| Méthode | Type de données | Rafraîchissement | Limite | Compétence requise |
|---|---|---|---|---|
| SERVICEWEB | XML, JSON, texte | Au recalcul (F9) | 32 767 caractères | Formules Excel |
| Power Query | Tout format | Manuel ou planifié | Illimitée | Interface Power Query |
| RTD | Données temps réel | Automatique (push) | Dépend du serveur | Serveur RTD requis |
Questions fréquentes
Non, SERVICEWEB est disponible uniquement dans Excel pour Windows et Mac (version bureau). Pour Excel Online, utilise Power Automate ou des scripts Office pour récupérer des données web.
SERVICEWEB peut appeler n'importe quelle API REST qui retourne du texte : XML, JSON, HTML, CSV. La fonction retourne le contenu brut de la réponse HTTP. Elle ne supporte que les requêtes GET et ne permet pas d'envoyer des en-têtes d'authentification personnalisés.
SERVICEWEB retourne le JSON brut sous forme de texte. Pour des valeurs simples, utilise CHERCHE pour localiser la clé et STXT pour extraire la valeur. Pour des structures complexes, Power Query est plus adapté : il parse nativement le JSON et te permet de naviguer dans l'arborescence.
Oui, SERVICEWEB est limitée à environ 32 767 caractères (limite d'une cellule Excel). Pour des réponses plus volumineuses, utilise Power Query ou filtre les données côté serveur via les paramètres de l'API.
Enveloppe SERVICEWEB dans SIERREUR pour gérer les échecs de connexion : =SIERREUR(SERVICEWEB(url);"Connexion échouée"). Teste ensuite si la réponse commence par un message d'erreur avec SI et GAUCHE pour protéger les cellules dépendantes.
Non, SERVICEWEB supporte uniquement les requêtes GET. Pour envoyer des données ou appeler des APIs qui nécessitent POST, tu dois utiliser Power Automate, VBA (avec la bibliothèque XMLHTTP), ou un script Office.
Pour aller plus loin
Continue sur ta lancée après la fonction SERVICEWEB : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir



