Si vous voulez importer dans Google Sheets des données en ligne d'un site web, IMPORTHTML est une formule Google Sheets très utile à garder sous le coude. Elle importe des données depuis un tableau ou liste de n'importe quelle page web, sans que vous ayez à copier-coller ou à ajuster les données avec d'autres formules.
Copier-coller des données tabulaires depuis Internet dans une feuille de calcul peut créer des problèmes de mise en forme. C'est pourquoi IMPORTHTML est un moyen plus simple d'importer des données de sites comme Wikipédia directement dans votre feuille de calcul tout en conservant la bonne mise en page. De plus, cette formule garantit que vos données sont toujours à jour. Google Sheets actualise la formule de lui-même : quand le site web change, votre feuille se met à jour en une heure environ. Voici comment utiliser la formule.
Syntaxe d'IMPORTHTML
IMPORTHTML(url, requête, index)
- url – il s'agit de l'adresse (localisateur uniforme de ressource) de la page web qui contient le tableau ou la liste que vous voulez importer. Elle peut prendre deux formes.
- Un emplacement valide et entièrement qualifié sous forme de texte (entre guillemets). Par exemple : "https://en.wikipedia.org/wiki/Demographics_of_the_world"
- Ou il peut s'agir d'une référence à une cellule (comme B1) dans Google Sheets, où l'URL est stockée.
- requête – this will be either “list” or “table” depending upon the structure of the data. Use “table” for data inside an HTML table (the <table> tag). Use “list” for a bulleted or numbered list (the <ul> ou <ol> tag).
- index – le numéro d'index identifie la liste ou le tableau dans la page web. Notez que les index des listes et des tableaux sont comptés séparément. Un tableau et une liste peuvent avoir le même numéro d'index. Le décompte commence à 1 : 1 correspond donc au premier tableau (ou à la première liste) dans le code HTML de la page.
IMPORTHTML renvoie le tableau ou la liste à partir de la cellule de la formule et remplit les cellules à droite et en dessous : laissez donc cette zone vide. Par exemple, =IMPORTHTML(B1, "table", 2) importe le deuxième tableau de la page dont l'URL se trouve dans la cellule B1.
Comment importer des données d'une page web dans Google Sheets
Option 1 : IMPORTHTML(url, "table", index)
Regardez la capture d'écran ci-dessous. Je veux importer des données dans la cellule B3 : c'est donc là que je saisis ma formule IMPORTHTML.
Vérifiez que l'URL est valide, c'est-à-dire placez l'URL entre guillemets doubles et appuyez sur Entrée.
Pendant que Google Sheets récupère les données du tableau, il affiche le message Chargement dans la cellule. Patientez quelques instants. Plus le tableau est grand, plus l'importation des données peut prendre du temps.
Pendant l'importation des données, la cellule B3 semble avoir renvoyé une erreur. Remarquez la petite marque rouge dans le coin supérieur droit de la cellule. Ce n'est pourtant pas une erreur, juste un état transitoire. Passez la souris sur la cellule pour afficher la description suivante :
Dès que Google Sheets a fini de charger les données, la marque rouge disparaît. Vous remarquerez que les données s'étendent depuis la cellule de la formule (B3) vers la droite et vers le bas de la feuille de calcul.
Veillez à laisser assez de place dans la feuille de calcul pour l'ensemble du tableau de données. Sinon, la formule IMPORTHTML risque de renvoyer une erreur #REF!. Regardez l'image suivante pour voir ce qui se passe quand la cellule C9 contient des données.
Option 2 : IMPORTHTML(référence à la cellule de l'url, "list", index)
Dans cet exemple, j'ai stocké l'URL dans la cellule B1. Voici l'adresse url de la page HTML qui contient la liste que nous voulons importer. Je fais référence à cette cellule dans la formule IMPORTHTML de Google Sheets, que je saisis dans la cellule B3. Le résultat est le même, sauf que cette fois je veux une liste au lieu d'un tableau.
Comment trouver l'index d'un tableau ou d'une liste
L'index compte les tableaux et les listes dans l'ordre où ils apparaissent dans le code HTML de la page. Les tableaux et les listes sont comptés séparément, et le décompte commence à 1. Sur une page courte, essayez 1, 2, 3 et ainsi de suite jusqu'à ce que les bonnes données s'affichent.
Sur une page qui contient de nombreux tableaux ou listes, utilisez la console de développement de votre navigateur pour voir les numéros :
- Ouvrez la page dans Chrome. Appuyez sur Ctrl + Maj + J sous Windows, ou sur Cmd + Option + J sur Mac, pour ouvrir le panneau Console.
- Pour numéroter les tableaux, collez ce code et appuyez sur Entrée :
var i = 1; document.querySelectorAll("table").forEach(function (el) { console.log(i++, el); }); - Passez la souris sur chaque résultat dans le panneau Console. Chrome met ce tableau en surbrillance sur la page. Le numéro affiché à côté est l'index à utiliser dans IMPORTHTML.
- Pour les listes, exécutez le même code avec "ul, ol" à la place de "table".
Le panneau Console affiche la page après l'exécution de ses scripts. Si un tableau y apparaît mais qu'IMPORTHTML ne le trouve pas, la page le génère probablement avec JavaScript. Consultez la section suivante.
IMPORTHTML ne fonctionne pas dans Google Sheets
Quand IMPORTHTML échoue, la cellule affiche une erreur. Cliquez sur la cellule et passez la souris sur le triangle rouge dans son coin pour lire le message. Voici les causes les plus fréquentes.
Erreur #N/A : impossible de récupérer l'URL
Ce sont les serveurs de Google qui récupèrent la page, pas votre navigateur. Si la page exige une connexion, se trouve sur un réseau d'entreprise ou bloque les visiteurs automatisés, la récupération échoue. Vérifiez aussi l'adresse. Elle doit commencer par http:// ou https://, et la page a peut-être été déplacée depuis que vous avez écrit la formule. Pour tester, ouvrez l'URL dans une fenêtre de navigation privée. Si vous devez vous y connecter, IMPORTHTML ne peut pas lire la page non plus.
Le tableau se charge avec JavaScript
IMPORTHTML lit le code HTML envoyé par le serveur. Elle n'exécute pas les scripts de la page. De nombreux sites génèrent leurs tableaux avec JavaScript après le chargement de la page : le tableau que vous voyez dans votre navigateur ne figure donc pas dans ce code HTML, et IMPORTHTML renvoie une erreur indiquant que le contenu importé est vide. Pour vérifier, faites un clic droit sur la page, choisissez Afficher le code source de la page et cherchez une valeur du tableau. Si elle n'y est pas, cherchez un téléchargement CSV sur le site et importez ce fichier avec IMPORTDATA au lieu de cela.
Mauvaises données : l'index a changé
Si la formule renvoie un autre tableau que celui attendu, l'index est décalé. Les sites changent de mise en page, et un nouveau tableau en haut d'une page décale tous les numéros qui suivent. Retrouvez l'index avec les étapes ci-dessus. Un index supérieur au nombre de tableaux ou de listes de la page renvoie une erreur.
Erreur #REF! : le résultat écraserait des données
IMPORTHTML a besoin de cellules vides pour l'ensemble du résultat. Si une cellule de cette plage contient déjà une valeur, vous obtenez #REF!, comme dans l'option 1 ci-dessus. Effacez ces cellules ou déplacez la formule.
Les données ne se mettent pas à jour
Google Sheets recalcule IMPORTHTML de lui-même environ toutes les heures : la cellule peut donc être en retard sur le site web. Pour forcer une actualisation, modifiez la formule et appuyez sur Entrée.
Autres façons d'importer des données dans Google Sheets
IMPORTHTML ne lit que les tableaux et les listes. Google Sheets propose d'autres fonctions d'importation pour d'autres sources :
- IMPORTXML récupère n'importe quelle partie d'une page web ou d'un fichier XML avec une requête XPath.
- IMPORTRANGE récupère une plage de cellules d'un autre fichier Google Sheets.
- IMPORTFEED importe un flux RSS ou Atom.
Vous cherchez d'autres formules et astuces pour gagner du temps dans Google Sheets ? Si vous devez régulièrement importer des données depuis des fichiers .csv ou .tsv sur le web, découvrez comment utiliser la formule IMPORTDATA dans Google Sheets.
Pour combiner des données issues de nombreuses feuilles de calcul, de fichiers Excel et d'autres sources, et les maintenir à jour selon un calendrier, Sheetgo, une plateforme d'automatisation des données basée sur l'IA, les connecte sans formules.



