Problème sur EXCEL pour importer des données web

  • Initiateur de la discussion lebarbo
  • Date de début
L

lebarbo

Guest
Bonjour à vous tous.

J'ai besoin de vous, je travaille en ce moment sur Excel. J'ai commencé mon projet sur un ordinateur portable avec la version 10.2614.2625 (2002). J'ai créé des requêtes web pour importer des données du web et pour pouvoir les actualisées quand bon me semble. J'ai par exemple importé le tableau des indices boursier de Boursorama : http://www.boursorama.com
Tout fonctionnait parfaitement bien. J'ai ensuite travaillé sur un ordinateur fixe avec la même version du logiciel mais impossible de faire la même requête. J'ai fouillé pour savoir si il y avait un firewall, une sécurité sur excel mais je n'ai rien trouvé.
J'ai un petit doute sur le navigateur internet explorer : en effet sur le portable c'est la version 6 de SP1 et sur le fixe c'est la version 6 de SP2. Jusqu'à maintenant pour avoir fait des test sur différent ordi, j'ai réussi à chaque fois si l'ordi possédait la version 6 de SP1.

Donc je souhaiterais savoir si quelqu'un a réussi à faire cette requête avec un internet explorer SP2 (pour savoir la version cliquez sur le point d'interrogation et à propos.)

Merci d'avance...et merci encore plus si vous trouvez la solution.
 
L

lebarbo

Guest
Apparemment c'est peut-être le fait que Boursorama possède une partie sécurisé dans son site, mais cela ne change pas le problème puisque j'ai quand même réussi à faire cette requête avec le micro portable...
 

albert

XLDnaute Occasionnel
par contre, si tu veux importer l'image de la page http://www.boursorama.com/indices/indices.phtml
tout dépend de la version de l'explorer que tu utilises. En ce qui me concerne, ça ne marche pas. Je crois que ça fonctionne avec ie5 mais n'en suis pas sûr.
Tu peux poser la question sur le forum initiation, cyberpapy et dark ont déjà testé, tu aquras des réponses plus précises

sur fininfo, il n'y a pas ce problème
Ce lien n'existe plus
 

albert

XLDnaute Occasionnel
s'cuse, sur fininfo ça ne marche pas non plus.
tu peux utiliser euronext :

Sub Macro1()
With ActiveSheet.QueryTables.Add(Connection:= _
'URL; _
, Destination:=Range('A1'))

.WebFormatting = xlWebFormattingNone
.WebTables = '60'
.Refresh BackgroundQuery:=False
End With

End Sub
 
L

lebarbo

Guest
Pour fininfo c'est cool moi ça marche, pour euronext j'utilise déjà cette adresse pour mon fichier excel. En fait je suis à la recherche de site comme fininfo où je pourrais trouver toutes les OPCVM.
Donc c'est vrai que Boursorama c'est un peu le site incontournable mais pour les indices je ne suis pas d'accord avec toi puisque quand tu vas sur le site tu n'as pas besoin de te loguer et vu que ça marche sur certain ordi je ne vois pas pourquoi ça ne marcherai pas pour tous sachant que la version d'explorer est à peu près la même >=6.0.
 

albert

XLDnaute Occasionnel
bonsoir lebarbo,

fininfo est un fournisseur de flux, c'est un site fiable, tu peux aussi travailler sur bourso, chez moi ça ne marche pas, je ne peux donc pas envoyer d'exemple, sauf pour le téléchargement des historiques.
il faut savoir aussi que les historiques bourso contiennent souvent des erreurs.

la difficulté pour les opcvm, c'est le grand nombre de choix possibles.
j'ai essayé de faire une boucle pour télécharger les pages à la suite, mais il y a plusieurs paramètres à prendre en compte.
j'ai laissé le début de travail sur la boucle , à toi de voir comment tu t'organises.
vu l'importance des bases de données à télécharger, tu as intérêt à trouver un moyen de faire des choix de sélection. Mais il faut travailler les adresses pour en comprendre le fonctionnement.
Sub OPCVM()
Range('A:F').Select
Selection.ClearContents
For u = 1 To 1
With ActiveSheet.QueryTables.Add(Connection:= _
'URL;Ce lien n'existe plus & u & '' _
, Destination:=[A65536].End(xlUp)(2))
.WebFormatting = xlWebFormattingNone
.WebTables = '10'
.Refresh BackgroundQuery:=False
End With
Next
End Sub

&&&&&&&&&&&&&&&&&
historiques bourso


sur boursorama, tu peux télécharger les historiques en travaillant l’adresse
-350000 est le code sicovam du cac 40
jour1=01&mois1=04&annee1=2005&jour = date début
2=22&mois2=04&annee2=2005 = date fin


voilà quelques pistes, arme toi de patience, il y a du boulot.

albert
 
L

lebarbo

Guest
merci albert de ton aide précieuse, pour boursorama comme je te l'ai expliqué ci-dessus ça marche que sur certain ordinateur donc pour un logiciel qui doit s'adapter à n'importe quel PC c'est pas génial et personne ne sait d'où vient le problème.
Sinon pour les historiques bourso c'est intéressant...à voir
et je compte finalement plutôt travailler sur bousier.com vis à vis des OPCVM et pour les indices, taux, devises j'ai bien essayé firstinvest.fr mais apprement ils ont quelques problèmes par exemple le site ce matin ne fonctionne pas.
Pour en revenir aux OPCVM le but du log est de le sclasser par secteur d'activités, géographique, exposition (Oblig, actions...) et par fournisseurs ou émetteurs. Tout ça en fonction de leurs performances hebdomadaire, mensuelle, au 1er janv et annuelle. Un bon boulot, actuellement je suis en stage et ça sera l'objet de mon rapport seulement c'est vrai que j'adore l'informatique mais ce n'est pas mon domaine scolaire juste un domaine que j'affectionne.
Voilà je t'ai tout dis si tu as des pistes je suis bien sur à l'écoute.

Bye et mercii
 

albert

XLDnaute Occasionnel
bonjour lebardo, salut forum,
' je compte finalement plutôt travailler sur bousier.com vis à vis des OPCVM et pour les indices, taux, devises '
' Pour en revenir aux OPCVM le but du log est de le classer par secteur d'activités, géographique, exposition (Oblig, actions...) et par fournisseurs ou émetteurs. Tout ça en fonction de leurs performances hebdomadaire, mensuelle, au 1er janv et annuelle '
c’est très ambitieux, il va falloir que tu retrouves dans un premier temps tous les émetteurs.
Morningstar a un bon moteur de recherche.
http://www.morningstar.fr/companies/default.aspx?mec=FR00000189
pour le classement par catégories, et http://www.europerformance.fr/europerformance3/opcvmMgmt/CoteQuotidienne.po?origine=fininfo&$ctxid=_1114493611678

sont pas mal, mais tu vas te retrouver avec des critères croisés.
Pour calculer les performances, les tableaux de données par fonds sont insuffisants, tu seras obligé d’utiliser les historiques de cours, de calculer les rendements cumulés et de les comparer à un benchmark (indice de référence), soit graphiquemen, soit par calcul de ratio (le raio de sharpe est le plus connu)

C’est un travail fastidieux que tu t’apprêtes à réaliser. Fastidieux mais intéressant. A l’occasion, si tu es intéressé, je veux bien collaborer à ton travail.
 
O

ouiiiiii

Guest
je ne sais pas pourquoi mais je vais répondre favorablement à ton invitation de collaboration ;)
C'est vrai que plus j'y pense et plus je me dis que ça va être long mais normalement j'ai du temps donc ça devrait aller.
Pour le site de morningstar : exellent, beaucoup de renseignement, bien pratique.
Une nouvelle requête viens de se greffer au projet : en fait je ne sais pas si tu connais le milieu (apparemment si vu les sites que tu me donnes) mais je vais également devoir classer les fonds en fonction des plateformes disponibles. Je m'explique, Skandia est une société qui fait ses propres fonds mais se sert également de fonds des autres, exemple : UBS. Il faut donc que je puisse également mettre en face des fonds, quelle plateforme les proposent. J'ai vu le site de Skandia et apparemment c'est bon il y a la liste de leur fonds : http://www.skandia.fr/tools/info_sur_les_fonds.shtml
J'ai peur également d'une autre chose c'est que le logiciel soit trop gros et demande trop de ressources. tu me dis si je me trompe mais apparemment on ne peut pas faire de requête web dans access donc c'est un peu dommage mais bon.
 
L

lebarbo

Guest
toujours moi,
je voudrais savoir si il y a une mannière d'accéder au code d'une requête web pour insérer un maximum de lien, je m'explique :
sur le site de skandia, je veux les fonds par catégorie, je vais donc faire une requête web sur 7 pages différentes (208 fonds sur 7 pages) au lieu de faire 7 requête web je souhaiterais intégrer les liens qui normalement sont logiques genre 'page1.htm' , 'page2.htm'... dans une seule requête web et comme ça l'actualisation des données sera également plus rapide.
 

albert

XLDnaute Occasionnel
bonsoir lebarbo,
' je vais également devoir classer les fonds en fonction des plateformes disponibles …
Il faut donc que je puisse également mettre en face des fonds, quelle plateforme les proposent. J'ai vu le site de Skandia et apparemment c'est bon il y a la liste de leur fonds '
Si tu fais un choix croisé sur skandia :

société (société générale asset management ' + Catégorie Morningstar (action amérique du nord) tu obtiens SGAM Fund Equities US Relative Value A (C)
mais il n’y a pas d’adresse disponible dans l’historique de l’explorer (clic droit sur skandia + propriétés)

Sur skandia, toujours, toutes sociétés de gestion- toutes catégories,
http://www.skandia.fr/tools/info_sur_les_fonds.shtml
Si tu choisis Captimum (C) , par exemple, le nom ne dit pas de quelle plateforme le fonds provient. Il faut que tu ouvres la page pour le savoir www.lyxor.fr

http://customer.morningstareurope.com/FR/skandiaselection/quicktakes/overview.asp?lang=fr&language=french&cid=JWMAY00278&lastpage=Classement&LastPageURL=/FR/skandiaselection/quickrank/indexfrench.asp?sMEC=|FundCategory_Id=-1|lMSCategory_Id=-1|sSearch=|sFCCurrency_ISO=|sDomicile_ISO=|BaseCurrency_ISO=|sManagementFee=-1|ManagerTenure=-1|IncOrAcc=-1|sYTD=|s1Month=|s3Month=|s1Year=|s3Year=|sRating=|lRating=-1|sStd3Year=|sSharpe=|lSize=0|EqSize=-1|EqValue=-1|FiSize=-1|FiValue=-1|lSector_Id=-1|lRegion_Id=-1|PctSector_ID=-1|PctRegion_ID=-1|Sector_Pct=-1|Region_Pct=-1|ISA=0|PEP=0|CAT=0|INS=0|sCouCat=|CountrySpecific_Category=-1|tab=RSLTS|SortBy=b_FundName|SortOrder=ASC|FirstLetter=|PageNo=1


une fois sur le site de www.lyxor.fr , il y a possibilité de télécharger les historiques des valeurs liquidatives en cherchant avec le code isin : FR0010059428

http://retail.lyxor.com/admins/files/newlyxor/retail/files/quotes/fr_quotes30476.slk

&&&&&&&&&&&&&&&&&

Morningstar donne un classement par plateformes, par exemple, pour luxor :


dans l’historique de l’explorer tu cliques droit sur morningstar pour avoir les propriétés. Tu obtiens :
http://www.morningstar.fr/companies/default.aspx?MEC=FR00000046
FR00000046 est un code pour la page associée à un fonds

Conclusion , le classement morningstar semble plus fiable que skandia.
&&&&&&&&&&&&&&&&
' J'ai peur également d'une autre chose c'est que le logiciel soit trop gros et demande trop de ressources. tu me dis si je me trompe mais apparemment on ne peut pas faire de requête web dans access donc c'est un peu dommage mais bon. '

tu ne pourras pas tout garder en mémoire dans le classeur, il va vite saturer. Je ne sais pas utiliser acces pour importer les données, mes quelques essais sont restés infructueux. Par contre, tu peux stocker les données dans des fichiers texte, c’est beaucoup plus fiable que de les garder dans excel, à moins de faire un téléchargement en choisissant dans une liste déroulante.
&&&&&&&&&&&&&&&&&&&&
' je vais donc faire une requête web sur 7 pages différentes (208 fonds sur 7 pages) au lieu de faire 7 requête web je souhaiterais intégrer les liens qui normalement sont logiques genre 'page1.htm' , 'page2.htm'... dans une seule requête web et comme ça l'actualisation des données sera également plus rapide. '

si l’on arrive à identifier le code pour chaque page à télécharger, on peut les envoyer en boucle sur la même page
exemple :
mornigstar, Lyxor International Asset Management,
Page A :


Page M :

Il suffit de boucler sur firstletter, c’est une boucle du type de celle utilisée dans le post du 25/04/2005 23:48
 

albert

XLDnaute Occasionnel
à partir de ce code, il faut traiter le nombre de pages et supprimer les doublons :
Sub opcvm()
Sheets('cours').Select
'--------------efface -------------------
Range('A:U').Select
Selection.ClearContents

'------------construction de la boucle----------------------
compte = Cells(1, 23)
For m = 2 To compte + 1

With ActiveSheet.QueryTables.Add(Connection:= _
'URL; & Cells(m, 23) & '&mec=FR00000046' _
, Destination:=[B65536].End(xlUp).Offset(1, -1)) '--colonne A vide :décalage à gauche pour superposer les téléchargements--
.WebFormatting = xlWebFormattingNone
.WebTables = '5'
.Refresh BackgroundQuery:=False
End With
Next
Range('A1').Select

End Sub
[file name=morningstar.zip size=23844]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/morningstar.zip[/file]
 

Pièces jointes

  • morningstar.zip
    23.3 KB · Affichages: 80
L

lebarbo

Guest
Merci pour la macro et je vais réflechir sur la façon de télécharger les pages, c'est vrai que ça fait beaucoup de données.
Pour Skandia je ne sais pas si tu m'as parfaitement compris. En fait sur morningstar on ne peut pas savoir les fonds proposés par skandia on peut juste savoir quels fonds sont créé par skandia c'est donc pour cela que je dois passer par le site de skandia pour avoir leur 208 fonds proposés. Comme ça à côté de la case émetteur je peut mettre les plateforme comme skandia qui propose le fonds.
 

albert

XLDnaute Occasionnel
bonjour lebarbo, et le forum,

Sur skandia, si tu modifies le Classement, par Société ou par Catégorie Morningstar, tu obtiens toujours la même adresse de téléchargement, c'est inutilisable avec vba.
Propriétés : raccourci internet
http://www.skandia.fr/tools/info_sur_les_fonds.shtml
barre d’adresse
http://www.skandia.fr/tools/info_sur_les_fonds.shtml

la solution, c’est de reproduire le classement skandia dans excel, puis de télécharger les fonds correspondants
il suffit de mettre une boucle sur le code en fin de liste
pour &mec=FR00000046' on a Lyxor International Asset Management sur morningstar
pour FR00000013, on a AGF Asset Management
il faut donc dresser la liste (manuellement) des fonds avec leur code respectif dans la feuille, puis boucler dessus, ou construire une recherche à l’aide d’une liste déroulante.
pour s'y retrouver en cas de téléchargement de plusuieurs fonds sur la même feuille, il faut récupérer le nom du fonds
et rajouter du code:
'---------coordonnées--------------
With ActiveSheet.QueryTables.Add(Connection:= _
'URL; & Cells(m, 23) & '&mec=FR00000046' _
, Destination:=Range('AA1'))
.WebFormatting = xlWebFormattingNone
.WebTables = '3'
.Refresh BackgroundQuery:=False
End With
'----------copie le nom------------
Range('AA1').Select
Selection.Copy
Range('A1').Select
ActiveSheet.Paste
 

Discussions similaires

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 197
dernier inscrit
john49