Bonjour,
ImportHTML
est l'une des 4 fonctions principales permettant de capter des données du Web sans passer par des scripts ou macros.
- ImportHTML : pages HTML
- ImportData : données au format csv (comma = virgule) ou tsv (tabulation)
- ImportFeed : flux rss
- ImportXML : tout fichier structuré, xml, xhtml, ...
Pourquoi capter des informations présentes sur le web ?
- Il est parfois utile de rapatrier des données à des fins d’utilisation personnelle ou professionnelle comme une conversion de devise, une évaluation d’un portefeuille boursier, des tendances météorologiques,…
- Dans ce cas, il faut parfois pouvoir capter des données publiées à l’état formaté mais non directement accessibles : formats xml, rss, csv
- Ceci doit toujours se faire conformément à la législation et dans le respect des droits d’auteurs et d’utilisation des données publiés le cas échéant.
Exemples et syntaxe :
1-
Prenons le cas des taux de conversion de devises publiés par la Banque de France https://www.banque-france.fr/statistiques/taux-et-cours/les-taux-de-change-salle-des-marches/parites...
=ImportHTML(url;"table";1)
1 étant la première table trouvée sur la page, cette formule donnera un tableau comportant la devise, le code de devise, le taux sur les 5 derniers jours ... au passage il sera possible de voir la tendance avec la formule =SPARKLINE
Il est possible de réduire le nombre de colonnes et ordonner la sortie comme suit
=query({IMPORTHTML(url;"table";1)};"select Col2,Col1,Col7 order by Col2";1)
2-
Prenons le cas de https://www.excel-pratique.com/fr/fonctions
L'affichage du fichier source de la page et la recherche du mot table indique que les informations sont à la 5ème occurrence de table
=ImportHTML(url;"table";5)
La table a 2 colonnes : la fonction et son action (*). On peut adjoindre à la fonction les intitulés des colonnes
={"fonction"\"action";importhtml(A1;A2;B2)}
le caractère \
sépare les données d'une même ligne (remplace la virgule utilisée dans les pays anglo-saxons) et ;
renvoie les nouvelles données dans une autre ligne.
Les exemples sont disponibles en copie ici : https://docs.google.com/spreadsheets/d/1_v58wXpvs5DoSuWyT6rmHAXGOg6Ov5LjP_WbwkoXqRE/edit?usp=sharing
(*) Pour importer les liens contenus dans les balises a, il faudra utiliser la fonction ImportXML plus puissante à voir dans le tuto correspondant.
=ImportXML( url ; chemin )
avec chemin : //*[@id="article"]/table[5]//a/@href
Nota : si les paramètres régionaux ne sont pas en phase avec les données disponibles, cela peut conduire à ce que les dates soient mal retranscrites, et que les données décimales soient dans certains cas interprétées comme des dates. On utilisera alors la fonction ImportData avec transformation des donnés importées.