Modifier un macro pour télécharger des données d'internet

Bonjour à tous,

il y a quelques temps je m'étais déjà adressé à la communauté pour un problème de plage glissante que j'ai réussi à résoudre à vous. J'ai continué à travailler sur mon outil et j'en voyais la fin jusqu'à ce que YAHOO décide de fermer un de ses sites et rende la macro que j'avais récupérer obsolète. Du coup, je me tourne vers vous pour pouvoir mettre à jour cette macro.

A l'origine l'URL à partir duquel était téléchargé les données était le suivant :

Seulement, il me semble (n'hésitez pas à m'arrêter si j'ai loupé quelque chose) que cet URL ne fonctionne plus. L'idée serait donc de faire matcher les macros " GETDATA" et et celle qui se rapporte au bouton " download all stocks" avec l'URL suivant : https://finance.yahoo.com/quote/AC.PA/history?p=AC.PA

Par la suite j'me pencherai sur comment faire s'adapter les graphique à une plage variable, mais c'est la prochaine étape.

J'vous remercie par avance de me filer un petit coup de main, j'ai essayé de modifier la macro moi même, sans succès jusqu'à maintenant.

Dab145 a écrit :

faire matcher les macros " GETDATA" et et celle qui se rapporte au bouton " download all stocks" avec l'URL suivant : https://finance.yahoo.com/quote/AC.PA/history?p=AC.PA

il ne manquerait pas un fichier joint ?

Il manque effectivement un fichier joint

Le download est ici :

' "https://query1.finance.yahoo.com/v7/finance/download/AC.PA?period1=1493222477&period2=1495814477&interval=1d&events=history&crumb=nl1u46mkfc/" 

qui devrait (probablement) remplacer ceci :

        qurl = "http://download.finance.yahoo.com/d/quotes.csv?s=" & Symbol
        qurl = qurl & "&a=" & Month(StartDate) - 1 & "&b=" & Day(StartDate) & _
            "&c=" & Year(StartDate) & "&d=" & Month(EndDate) - 1 & "&e=" & _
            Day(EndDate) & "&f=" & Year(EndDate) & "&g=" & Range("G3") & "&q=q&y=0&z=" & _
            Symbol & "&x=.csv"

mais je ne sais pas comment sont établis les paramètres

period1=1493222477 ici

period2=1495814477 ici

Dab145,

Le site Yahoo est blindé, cela veut dire qu'on ne peut pas le lire autrement que par un navigateur web.

Est-ce que Boursorama (plus accessible) peut donner les infos demandées ?

J'ai essayé par la procédure GetData avec un autre exemple qui lui fonctionne bien !

98querytables.xlsm (17.37 Ko)
capture d ecran 202

Bonjour Steelson,

D'accord. Initialement je m'étais tourné vers Yahoo parce qu'il permettait justement de télécharger les données..

Oui Boursorama peut donner les données. A vrai dire, ce sont des données assez primaires, mais il y'en a beaucoup (d'où la volonté "d'automatiser"). Il y'a aussi abc bourse https://www.abcbourse.com/download/historiques.aspx, mais je crois que ces sites sont uniquement accessible via le web ?

Sais-tu comment je pourrais reconnaître un site qui serait accessible et configurable pour une macro ?

Dab145 a écrit :

Sais-tu comment je pourrais reconnaître un site qui serait accessible et configurable pour une macro ?

... en regardant le code source ! mais c'est parfois généré par du php et incompréhensible compte tenu d'une mise en forme brouillonne !

Pour moi, le seul juge de paix serait donc de faire un essai. Le bout de code que je t'ai mis doit y aider. Mais pour cela il faut repérer le nom donné en html par la table.

Une autre solution plus pro est d'utiliser "getElementsByTagName" à condition que le site soit bien écrit et ce n'est pas souvent le cas !


Dab145 a écrit :

Il y'a aussi abc bourse https://www.abcbourse.com/download/historiques.aspx, mais je crois que ces sites sont uniquement accessible via le web ?

Dans ce cas il s'agit d'un formulaire renvoyé et je n'ai pas bien compris comment étaient passées les variables ...

A mon avis il faut "cotiser" pour avoir l'API pour télécharger automatiquement

Merci pour ton aide Steelson, je vais essayer de me pencher plus longuement dessus les jours prochains. Je voudrais éviter de passer par un API, à moins d'y être vraiment obligé, mais ça m'a l'air assez compliqué...

En trainant sur le web, je suis tombé sur d'autres utilisateurs qui ont été pris de court un peu comme moi

. Je vais lire ça et voir si une solution se dégage.

Mes explications ne sont pas forcément très claires ... donc je reprends.

Il y a 2 voies :

  • les données sont affichées sur la page web > j'utilise la notion de table ou getElementsByTagName
  • les données sont téléchargées, alors il faut "poster" la requête, soit méthode get (plus simple car l'url contient les paramètres comme c'était le cas avec yahoo), soit méthode post et là je n'ai jamais pratiqué

Tiens moi (nous) informé de tes résultats.

Bonjour,

Je viens réactiver la file car c'est tout à fait le problème que je viens d'avoir avec une macro pour le téléchargement de cours de bourse.

J'utilise de petits fichiers avec 1 ou plusieurs valeurs (35 à 40ko) avec une macro qui utilisait le site Yahoo.finance. Or depuis 2 jours, Yahoo a stoppé son service

quote==================================================================================

It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.

unquote================================================================================

donc mes fichiers ne fonctionnent plus et je suis à la recherche d'une nouvelle adresse web : Abcbourse ? boursorama ? google finance ?

bloomberg ? Je ne sais pas.

J'ai ouvert une file sur ce site avec la macro

https://forum.excel-pratique.com/post589277.html#p589277

Si vous avez trouvé une solution, je serais bien volontiers preneur

Avec mes remerciements

Cordialement

Bonjour,

je sais faire certaines choses avec boursorama ... dis moi ce que tu cherches en faisant une interrogation de boursorama sur une valeur par exemple

http://www.boursorama.com/cours.phtml?symbole=1rPAC

Bonjour Steelson et merci pour ton aide.

Voici , je te joins un de mes fichiers.

Il suffit de cliquer sur GO pour activer la macro.

Celle-ci allait chercher les valeurs de la liste sur le site yahoo finance.

Ceux-ci ont bloqué le téléchargement des cours depuis leur site.

Depuis je cherche une adresse d'un site web à noter dans la macro pour remplacer yahoo finance.

Très cordialement

Bjr,

capture d ecran 130

A quoi correspondent toutes ces valeurs affichées ?

AF.PA 13,775 01/11/2017 12:26pm 0,325 13,48 13,875 13,315 1396589

Bonjour Steelson,

code / cours / date / heure / delta / ouverture / +haut / +bas / volume

AF.PA 13,775 01/11/2017 12:26pm 0,325 13,48 13,875 13,315 1396589

Cordialement

Bonne journée

Neelson,

Concernant ta proposition avec Boursorama

Actuellement, j'utilise peu ce site à cause de mes fichiers en Excel. En effet, j'ai comme séparateur de décimale la virgule et non le point.

Je vais chercher les cours sur abcbourse : voir copie écran fichier

Le gros inconvénient d'abcbourse est qu'il ne cote pas toutes les valeurs: exemple l'ETF sur le cacao

iPath Bloomberg Cocoa SubTR ETN (NIB)

http://www.boursorama.com/bourse/trackers/etf.phtml?symbole=1yNIB

Si tu as une solution avec boursorama, je suis évidemment preneur

Bien cordialement

C'est un début, je vais poursuivre ...

fais jouer la macro

quelles sont les données qui t'intéressent ? voici ce que je récupère mais je peux aller au-delà sans doute

Cours Euronext Paris

Variation

Dernier échange

Volume

Ouverture

+ Haut

+ Bas

Clôture veille

Capital échangé

Valorisation

Limite à la baisse

Limite à la hausse

Ouverture théorique

Indice de référence


qataror a écrit :

Actuellement, j'utilise peu ce site à cause de mes fichiers en Excel. En effet, j'ai comme séparateur de décimale la virgule et non le point.

Ce n'est pas un soucis ... cela se transforme facilement !


je ne sais pas par contre si je peux avoir les valeurs échangées minute par minute !

Merci pour ton aide.

pour les valeurs, je n'ai besoin que du cours,c'est à dire celui dans la cellule en B1.

mes fichiers ont eu une macro qui réactualisent toutes les minutes ce qui est suffisant.

PS je pense que vous utilisez Microsoft Office 2010, pour ma part , c'est Office 2003 plus simple

Cordialement

Dans ce cas c'est plus simple

Il suffit d'ajouter les autres actions à la liste !

Steelson,

Je viens de voir ta réponse.

J'avais rempli ton premier fichier avec mes valeurs et qui fonctionnait bien.

Ton nouveau tableau est encore mieux et beaucoup plus simple.

Vu que tu le connais par coeur, serait-il possible de rajouter dans la colonne D la date et l'heure (dernier échange)

Merci encore pour ton aide

Cordielement

Okay ...

Rechercher des sujets similaires à "modifier macro telecharger donnees internet"