Récupérer des données en ligne pour tableau Excel

Bonjour,

Je souhaite récupérer des données en ligne sur un site internet pour mon tableau excel. Le site en question met à disposition différents API pour programmer mais étant profane dans ce domaine je n'y comprends pas grand chose. Actuellement je dois actualiser manuellement les données mais j'aimerais pouvoir automatiser cette extraction de donnée via un bouton ou de manière automatique dans l'idéal. Le but serait d'ouvrir mon excel est de juste avoir à regarder les nouvelles données sans toucher à rien. Ma question est donc : est-ce seulement possible ?

Une deuxième question m’apparaît alors : si cela est possible sur un tableau excel, se pourrait-il que cette automatisation mis en place fonctionne toujours si je convertis mon fichier excel en Google Sheet afin d'y avoir accès sur tous mes appareils ?

Merci d'avance pour vos réponses. J'espère avoir été assez clair dans la description de mon problème.

- witmeur27

Bonjour,

Pour google sheet je ne sais pas

Pour récupérer des données en ligne (sans API) il y a différentes stratégies dépendant de la façon dont est écrit le site et de la façon éventuelle de passer des paramètres (POST ou GET).

Si les API existent, je ne pense pas qu'automatiser ce qui se fait manuellement soit complexe !

Mais pour poursuivre, il faudrait un peu plus de précision sur le site et les infos récupérées. Ou bien un exemple-type.

Bonjour,

merci pour la réponse rapide.

J'ai peut-être trouver une solution à mon problème qui ne nécessiterait pas d'API. Il s'agit de récupérer ce qui s'affiche sur un lien de ce type qui lui est mis à jour automatiquement :

https://cex.io/api/last_price/BTC/EUR

J'ai donc pensé à une extraction de données. Le soucis étant que lorsque je fais Données/Web je rentre cette adresse et au lieu de m'afficher la page et de me proposer d'importer il me propose de rechercher ou d'enregistrer. Rechercher n'apporte rien et si j'enregistre j'ai bien les données sur un document à part mais celle-ci ne se mette pas à jour lorsqu'on ferme et ré ouvre le fichier.

Parfait, ce sera donc assez simple à enregistrer.

Le format est du json exploitable aussi facilement.

Je vais regarder cela cet apm si j'ai un peu de temps, de quoi me décrasser les neurones.

Voici à l'état brut, mais avec un outil trop complexe (en gros il y a plus simple car la structure json est ici simple)

Pour automatiser, on peut créer une boucle et une sortie différente pour avoir les résultats présentés de façon plus exploitables ensuite.

6cex-io.xlsm (56.89 Ko)

version mise à jour à chaque ouverture

je vais travailler sur une version hyper-simplifiée au niveau du code

8cex-io.xlsm (56.54 Ko)

Ouah c'est génial ça marche impeccablement bien !!

Merci à toi c'est fou !

Tu as utilisé une macro ? Est-ce que je peux reproduire la même chose de manière assez simple ? J'ai besoin de refaire la même chose pour d'autres données qui s'affiche de la même manière.

En faite, j'aimerais faire exactement la même chose avec les liens suivants :

https://cex.io/api/last_price/ETH/EUR

https://cex.io/api/last_price/BCH/EUR

https://cex.io/api/last_price/BTG/EUR

https://cex.io/api/last_price/DASH/EUR

https://cex.io/api/last_price/XRP/EUR

https://cex.io/api/last_price/ZEC/EUR

https://cex.io/api/last_price/GHS/BTC

Si possible les avoir sur le même fichier Excel. Puis-je recopier ton travail en modifiant éventuellement quelques lignes ? Je ne voudrais pas te déranger plus et c'est toujours bon d'apprendre.

En tous cas un grand merci.

pas de soucis de mon côté

je suis en train de simplifier drastiquement le code

mais ensuite n'hésite pas à t'en inspirer ...

Voici

13cex-io.xlsm (48.30 Ko)

Alors du fond du cœur : merci

Tu me rend un grand service. Tous mes copains développeur m'ont dit que ça serait trop compliqué. Je ne suis pas sûr de savoir comment tu as fait mais c'est génial, ça marche.

Effectivement pour l'instant ça ne marche pas en Google Sheet alors je vais me renseigner pour voir s'il y a possibilité d'installer une extension pour les macros. Mais en tous cas en version Excel ça marche donc c'est nikel.

Merci à toi l'ami et bonne année.

Alors juste un petit détail :

Sur le dernier Excel que tu m'as envoyé il n'y a plus la première macro que tu as faite avec :

https://cex.io/api/last_price/BTC/EUR

Serait-il possible de l'ajouter au dessus des autres stp ? Un grand merci

Tu as la main

Il te suffit de faire insérer une ligne et ajouter BTC et EUR dans les 2 premières cellules de cette ligne ...

et relancer la macro (ou fermer puis ouvrir)

Tous mes copains développeur m'ont dit que ça serait trop compliqué. Je ne suis pas sûr de savoir comment tu as fait mais c'est génial, ça marche.

Compliqué ? 17 lignes de code ...

Sub interro_web()
Dim tableau
lig = Cells(Application.rows.Count, 1).End(xlUp).Row
For i = 2 To lig
    DoEvents
    URL = "https://cex.io/api/last_price/" & Cells(i, 1) & "/" & Cells(i, 2)
    On Error Resume Next
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .Send
        If .Status = 200 Then
            Cells(i, 3) = Replace(Split(Split(Split(Split(.responseText, "{")(1), "}")(0), ",")(0), ":")(1), """", "")
        End If
    End With
Next
Cells(1, 2) = Now
End Sub
8cex-io.xlsm (48.36 Ko)

Eh bien il faut croire qu'ils se trompaient. Je te remercie !

et clique sur le petit cœur si cette solution te convient, cela fait toujours plaisir de voir que les réponses sont vraiment utiles

Rechercher des sujets similaires à "recuperer donnees ligne tableau"