Qu'est-ce que la fonction IMPORTHTML ?
IMPORTHTML (même nom en anglais), réservée à Google Sheets, t'évite de copier-coller à la main une donnée publiée sur une page web à chaque fois qu'elle change. Tu la branches une fois sur la bonne page, et le tableau ou la liste que tu vises revient tout seul dans ta feuille.
Parfait pour suivre des classements, récupérer des données financières ou automatiser la collecte d'informations publiées sur le web. Les données se mettent à jour automatiquement à chaque ouverture ou recalcul du fichier.

Comprendre chaque paramètre de la fonction IMPORTHTML
Les trois arguments s'enchaînent toujours dans le même ordre : d'abord l'url de la page, puis le type d'élément à extraire ("table" ou "list"), enfin l'index qui dit lequel prendre. Aucun n'est facultatif.
Le piège n'est pas l'ordre mais l'index : il compte les balises dans le code HTML, pas ce que tu vois à l'écran. Un tableau caché dans l'en-tête peut décaler toute la numérotation.
url
: l'adresse complète de la page web contenant le tableau ou la listeElle doit commencer par "http://" ou "https://". Tu peux la saisir directement entre guillemets dans la formule, mais le plus lisible reste de la coller dans une cellule et de la référencer.
Dans nos exemples, l'URL vit en A1 (ici https://data.excellersacademy.com/media/videos/fixtures/classement.html), le type d'élément en B1 et l'index en C1. La formule se réduit alors à =IMPORTHTML(A1;B1;C1), sans un seul guillemet à taper.
requête
: le type d'élément HTML à extraireDeux valeurs possibles : "table" pour les tableaux HTML (<table>) ou "list" pour les listes à puces ou numérotées (<ul> et <ol>).
Le choix dépend de la structure de la page source. Si les données que tu veux récupérer sont dans un tableau HTML, utilise "table". Si elles sont dans une liste à puces ou numérotée, utilise "list". Placée dans une cellule (par exemple B1), la valeur s'écrit sans guillemets.
index
: le numéro du tableau ou de la liste à extraire, en commençant à `1` pour le premier élément de la pageSi une page contient 5 tableaux et que tu veux le 3e, utilise 3.
L'index correspond à l'ordre d'apparition dans le code HTML de la page, pas à l'ordre visuel. Les tableaux et les listes se comptent séparément : un tableau et une liste peuvent tous deux porter l'index 1. Un élément caché dans l'en-tête ou le pied de page peut décaler la numérotation.

Exemples pratiques pas à pas
Comment importer un tableau d'une page web avec la fonction IMPORTHTML
Tu suis un petit classement publié sur une page web et tu aimerais le voir se mettre à jour tout seul dans Google Sheets, sans le recopier à chaque changement. La page affiche un tableau tout simple, deux colonnes Equipe et Points avec trois équipes. Plutôt que de coller ces valeurs à la main, tu ranges l'adresse de la page et les deux réglages dans trois cellules, et tu laisses la fonction IMPORTHTML faire le va-et-vient à ta place.
- 1Dans une cellule, écris
=IMPORTHTML(. - 2En 1er argument : clique sur la cellule où tu as collé l'adresse de la page,
A1. Elle affichehttps://data.excellersacademy.com/media/videos/fixtures/classement.html. Pointer la cellule plutôt que de retaper l'adresse dans la formule t'évite de jongler avec les guillemets. - 3En 2ᵉ argument : clique sur la cellule qui fixe le type d'élément à extraire,
B1. Elle contient le mottable, qui vise une balise<table>de la page et laisse les listes de côté. - 4En 3ᵉ argument : clique sur la cellule qui donne le numéro de l'élément,
C1. Elle contient1pour viser le premier tableau rencontré dans le code de la page. Comme la page n'en compte qu'un, ce1tombe forcément dessus. - 5Ferme la parenthèse et appuie sur Entrée. La fonction lit tes trois cellules et déverse le tableau d'un seul bloc sous la formule.
=IMPORTHTML(A1;B1;C1)Equipe / Points, puis Alpha (28), Beta (21) et Gamma (17). Les nombres sont reconnus comme de vrais nombres, alignés à droite, donc tu peux les additionner ou les trier sans les reconvertir. Le point clé tient dans B1 et C1 : le mot table vise une balise <table>, et l'index 1 prend le premier tableau de la page.Comment importer une liste d'une page web avec la fonction IMPORTHTML
La même page héberge aussi une liste à puces, celle des villes hôtes, juste sous le tableau. Cette fois, tu veux récupérer ces villes dans une colonne, sans toucher au reste. Le principe ne bouge pas d'un pouce par rapport au tableau : tu gardes l'URL en A1 et tu changes simplement le type d'élément à extraire pour passer des tableaux aux listes.
- 1Dans une cellule, écris
=IMPORTHTML(. - 2En 1er argument : clique sur la cellule qui contient l'adresse de la page,
A1. Elle garde la même adresse que pour le tableau,https://data.excellersacademy.com/media/videos/fixtures/classement.html, puisque cette page héberge à la fois le tableau et la liste. - 3En 2ᵉ argument : clique sur la cellule qui fixe le type d'élément,
B1. Elle contient cette foislistà la place detable, ce qui fait basculer la fonction des tableaux vers les listes à puces et numérotées. - 4En 3ᵉ argument : clique sur la cellule qui donne le numéro de l'élément,
C1. Elle contient1pour la première liste de la page, et ce1ne vise pas le même élément que dans l'exemple du tableau, car les listes se comptent à part des tableaux. - 5Ferme la parenthèse et appuie sur Entrée. Les trois villes se rangent les unes sous les autres dans une seule colonne :
Paris,Lyon,Marseille.
=IMPORTHTML(A1;B1;C1)list en B1 fait basculer la fonction des tableaux vers les listes à puces (<ul>) et numérotées (<ol>), et l'index 1 en C1 vise la première liste de la page. Tu récupères ses trois puces, une par ligne dans la colonne A : Paris, Lyon, puis Marseille. Le titre placé juste au-dessus de la liste reste dehors, car c'est un simple titre de section, pas un élément de la liste.Comment choisir le bon index avec la fonction IMPORTHTML
Le troisième réglage, l'index, ne sert vraiment que sur une page qui aligne plusieurs tableaux ou plusieurs listes : c'est lui qui désigne lequel importer. Notre page d'exemple reste volontairement simple, un seul tableau et une seule liste, mais autant comprendre comment on compte avant de tomber sur une page plus chargée où le bon numéro n'a rien d'évident.
- 1Dans une cellule, écris
=IMPORTHTML(. - 2En 1er argument : clique sur la cellule qui contient l'adresse de la page,
A1. Elle affichehttps://data.excellersacademy.com/media/videos/fixtures/classement.html. C'est la seule page où la fonction ira lire. - 3En 2ᵉ argument : clique sur la cellule qui fixe le type d'élément,
B1. Elle contienttable, donc la fonction s'en tient aux balises<table>et compte les tableaux sans mêler les listes. - 4En 3ᵉ argument : clique sur la cellule qui donne le numéro de l'élément,
C1. Elle contient1parce que le classement est le premier tableau de la page. Tu comptes les tableaux de haut en bas en partant de1, et un tableau et une liste peuvent porter chacun le numéro1sans se gêner, car les deux types se comptent séparément. - 5Ferme la parenthèse et appuie sur Entrée. Avec
1enC1, la fonction rapatrie l'unique tableau de la page ; réclamer un2reviendrait à pointer un deuxième tableau que cette page ne contient pas.
=IMPORTHTML(A1;B1;C1)1 suffit dans les deux cas : il n'y a qu'un tableau et qu'une liste. L'index ne prend tout son sens que sur une page qui en aligne plusieurs, où il sert à désigner lequel importer. Tu comptes les éléments d'un même type de haut en bas en partant de 1, et tu retiens qu'un index qui n'existe pas ne renvoie pas un tableau vide mais une vraie erreur : en réclamant un 2 ici, la fonction ne trouve aucun deuxième tableau et refuse.Comment corriger l'erreur #REF! d'autorisation avec la fonction IMPORTHTML
Tu as tout écrit correctement et pourtant la cellule affiche #REF!. Pas de panique : ce n'est pas ta formule qui cloche. Au premier import d'une feuille, Google réclame un feu vert avant d'aller lire une source extérieure, et tant que tu ne l'as pas donné, l'erreur reste à l'écran. C'est une autorisation à accorder une fois, pas un bug à déboguer.
- 1Dans une cellule, écris
=IMPORTHTML(. - 2En 1er argument : clique sur la cellule qui contient l'adresse de la page,
A1. Rien ne change côté formule par rapport aux exemples précédents. L'adressehttps://data.excellersacademy.com/media/videos/fixtures/classement.htmly est déjà rangée. - 3En 2ᵉ argument : clique sur la cellule qui fixe le type d'élément,
B1. Elle contienttable, car tu veux de nouveau récupérer le classement. - 4En 3ᵉ argument : clique sur la cellule qui donne le numéro de l'élément,
C1. Elle contient1pour viser le premier tableau de la page. - 5Ferme la parenthèse et appuie sur Entrée. Si c'est ton tout premier import dans cette feuille, la cellule affiche
#REF!au lieu du tableau. Clique alors sur la cellule, valide « Autoriser l'accès », et le classement se déverse aussitôt.
=IMPORTHTML(A1;B1;C1)#REF! n'accuse ni ta formule ni la page : il attend seulement que tu cliques sur « Autoriser l'accès », l'étape que Google impose au premier import d'une feuille. Une fois l'accès donné, la même formule affiche le tableau Equipe / Points sans que tu changes une virgule. Pense aussi au cache : IMPORTHTML ne relit pas la page en continu mais environ une fois par heure, donc une modification récente côté site peut mettre ce délai à apparaître.
Les erreurs fréquentes avec la fonction IMPORTHTML
Avec IMPORTHTML, les soucis viennent rarement de ta formule et presque toujours de la page source. Soit elle se défend contre les robots, soit elle construit ses tableaux en JavaScript après le chargement (et IMPORTHTML ne lit que le HTML brut, avant les scripts).
Le troisième cas ne vient pas de la page mais de Google Sheets : au premier import d'une feuille, il faut cliquer sur « Autoriser l'accès », et trop de formules IMPORTHTML dans le même fichier finissent par déclencher des erreurs de quota. Dans les deux cas, la cellule affiche #REF!.
Erreur lors de l'extraction des données
Le site bloque les requêtes automatiques (anti-scraping), ou il n'y a pas de tableau ou de liste à l'index spécifié. Certains sites génèrent leur contenu dynamiquement avec JavaScript, ce que IMPORTHTML ne peut pas lire.
Solution : Vérifie que l'URL est correcte et accessible depuis un navigateur standard. Essaie différentes valeurs d'index. Si le tableau apparaît visuellement mais pas dans Google Sheets, le contenu est probablement chargé dynamiquement par JavaScript : cherche une source alternative avec du HTML statique.
Le tableau est vide ou incomplet
Certains sites chargent leurs données dynamiquement avec JavaScript après le rendu initial de la page. IMPORTHTML ne lit que le HTML initial, avant l'exécution des scripts.
Solution : Cherche une source alternative dont le HTML est statique, par exemple la version mobile ou l'API publique du site. Wikipedia est une source fiable car ses tableaux sont en HTML pur.
Erreur #REF! : autorisation en attente ou quota d'imports dépassé
Deux situations donnent ce #REF!. Au tout premier import d'une feuille, Google attend que tu cliques sur « Autoriser l'accès » : tant que ce n'est pas fait, la cellule reste bloquée sur #REF!. Ensuite, si tu empiles trop de formules d'import dans le même fichier, tu peux dépasser le quota d'appels externes autorisés par feuille.
Solution : Commence par cliquer sur la cellule et valider « Autoriser l'accès » : c'est une autorisation à donner une seule fois par feuille, pas une faute de formule. Si l'erreur persiste une fois l'accès accordé, allège le fichier : regroupe tes imports sur une feuille dédiée et renvoie leurs résultats ailleurs avec de simples formules de renvoi. Évite de dépasser 10 à 15 formules IMPORTHTML par fichier.

IMPORTHTML vs IMPORTDATA vs IMPORTXML vs IMPORTFEED
Choisis IMPORTHTML quand ta donnée est déjà rangée dans un vrai <table> ou une liste à puces sur une page web : un classement, des stats publiées. Si tu veux juste un élément précis (un prix, un titre) au milieu de la page, IMPORTXML et son ciblage XPath est plus chirurgical.
IMPORTDATA s'adresse à une URL qui pointe directement vers un fichier CSV ou TSV, et IMPORTFEED se réserve aux flux RSS ou Atom pour la veille d'actualités.
| Fonction | Ce qu'elle importe | Format source | Cas d'usage typique |
|---|---|---|---|
| IMPORTHTML | Tableaux et listes HTML | Pages web publiques | Classements, stats publiées sur le web |
| IMPORTDATA | Fichiers CSV ou TSV | Données brutes (URL directe) | Données opendata, exports publics |
| IMPORTXML | Éléments HTML ciblés via XPath | XML ou HTML | Extraction chirurgicale (un prix, un titre) |
| IMPORTFEED | Articles et titres | Flux RSS ou Atom | Veille actualités et blogs |
Questions fréquentes
Non, IMPORTHTML est exclusive à Google Sheets. Dans Excel, tu peux utiliser Power Query (Données > Obtenir des données > À partir du web) pour importer des tableaux depuis internet. L'ergonomie est différente mais le résultat est similaire.
L'index commence à 1 pour le premier tableau ou la première liste de la page, et les deux types se comptent séparément. Essaie 1, puis 2, 3... jusqu'à obtenir le bon élément. Pour aller plus vite, ouvre la page dans ton navigateur, fais clic droit et "Inspecter" pour compter les balises <table> dans le code HTML. Un index qui n'existe pas renvoie une erreur, pas un tableau vide.
Oui, IMPORTHTML récupère les données à chaque ouverture du fichier ou recalcul de la feuille. Tu peux forcer le rafraîchissement avec Ctrl+Shift+E. En pratique, Google met les données en cache et ne relit la page qu'environ une fois par heure : une modification récente côté site peut donc tarder à apparaître.
Au tout premier import d'une feuille, Google affiche « Autoriser l'accès » et laisse la cellule sur #REF! tant que tu n'as pas cliqué. Ce n'est pas une erreur de formule mais une autorisation à donner une seule fois par feuille : clique sur la cellule, valide l'accès, et le tableau se déverse aussitôt.
Non, IMPORTHTML ne peut accéder qu'aux pages publiques sans authentification. Pour les sites avec connexion obligatoire, tu dois copier-coller manuellement ou utiliser des outils d'automatisation comme Google Apps Script qui peut simuler une session connectée.
Les sites web changent leur structure régulièrement. Si un tableau est déplacé ou si la page est restructurée, ton index peut pointer vers le mauvais tableau ou vers un tableau qui n'existe plus. Vérifie que le site n'a pas changé et ajuste l'index si nécessaire.
Pour aller plus loin
Continue sur ta lancée après la fonction IMPORTHTML : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




