OVH Cloud OVH Cloud

requête Web avec excel 2003

13 réponses
Avatar
ocean
Bonjour tout le monde,

Jusqu'=E0 la semaine derni=E8re, je faisais des requ=EAtes web avec excel
2000 en vba sur boursorama.
Cette semaine, j'ai refait mon pc et install=E9 xp sp2 et office 2003.

Et impossible d'ex=E9cuter les requ=EAtes.
Impossible d'ouvrir en directe par fichier/ouvrir et url.

-Ai-je mal param=E9tr=E9 Xp ou excel ?
-quelqu'un pourrait faire un essai svp ?
-des conseils ?

Merci d'avance.

P=2ES. j'ai beaucoup appris sur le site de J@C, sp=E9cial thanks for him

3 réponses

1 2
Avatar
michdenis
| Et pour voir le résultat de ce que cela donne, tu peux consulter le
| fichier à cette adresse : http://cjoint.com/?jxvRwrqxWk

Vous aurez compris qu'en ouvrant ce fichier (classeur) qu'il a été enregistré
au format HTML.

Effectivement, on peut "importer" la page web mais ce n'est pas
ce à quoi je pensais ... ;-))




Workbooks.Open Filename:= _
"http://www.x-rates.com/tables/USD.html"

Ou je peux taper directement cette adresse dans la
boîte de saisie "ouvrir" lorsqu'appelé dans Excel

Je suis sous Windows xp2 et office 2003

La seule chose que j'ai fait de différent, c'est d'ouvrir
cette adresse en premier lieu... question de tester
si une autre adresse pouvait fonctionner !

Workbooks.Open Filename:= _
"http://visualbasic.about.com/library/bldykblkscpa.htm"

Et pour voir le résultat de ce que cela donne, tu peux consulter le
fichier à cette adresse : http://cjoint.com/?jxvRwrqxWk





"ocean" a écrit dans le message de news:

Cela a marché pendant 3 mois, mais depuis ma nouvelle config, ce n'est
plus le cas.
Merci sincèrement de ton aide.
Je continue ma quête :)


Je ne crois pas que ce site soit conçu pour extraire les données
directement dans Excel via une requête !

Exemple : si tu utilises .WebTables = "25"
Tu obtiendras la liste des "currency" disponibles

Je vois difficilement comment arriver à réorganiser un tableau
des données exploitables à partir de résultat aussi parcellaire.

Bonne chance.


"ocean" a écrit dans le message de news:

Re-Bonsoir michdenis;
Merci encore

Effectivement je m'explique mal :
Je te demandais DANS EXCEL, si tu pouvais, chez toi faire
fichier/ouvrir avec
http://www.boursorama.com/cours.phtml?symbole=1rPFP
pour voir si la page s'affiche dans le tableur.

Les API, c'était autre chose sur la page de il ya un code qui
permet de récupérer le source html. Il est gros et complexe et donc
dur à nettoyer. ci-après.

je m'y connais peu mais je me dis que si je peux avoir le source, je
peux peut-être extraire les tables en vba. Non.

Michdenis, je te remercie encore sincèrement.

Le voici :
Private Declare Function OuvreInternet Lib "wininet" _
Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType
As Long, _
ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal
lFlags As Long) As Long
Private Declare Function fermeInternet Lib "wininet" _
Alias "InternetCloseHandle" (ByVal hInet As Long) As Integer
Private Declare Function code_page Lib "wininet" _
Alias "InternetReadFile" (ByVal hFile As Long, ByVal sBuffer As
String, _
ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As
Integer
Private Declare Function Ouvrepage Lib "wininet" _
Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal
lpszUrl As String, _
ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal
dwFlags As Long, _
ByVal dwContext As Long) As Long

Sub lit_code_page_Web()
Dim texte_code As String * 1024

page_Web_à_lire = InputBox("URL de la page à lire ?", _
"code de la page Internet",
"http://www.boursorama.com/cours.phtml?symbole=1rPCEI")
internet = OuvreInternet("toto", 0, vbNullString, vbNullString, 0)
'ouvre Internet
URL = Ouvrepage(internet, page_Web_à_lire, vbNullString, _
0, &H400000 Or &H4000000 Or &H80000000, 0) 'ouvre la page Web
'lecture du code de la page par paquet de 1024 caractères
txt = ""
nb_caractères_lus = 1
Do While nb_caractères_lus > 0
'lit 1024 caractères et les copie dans texte_code
code_page URL, texte_code, 1024, nb_caractères_lus
txt = txt & Left(texte_code, nb_caractères_lus)
Loop
fermeInternet URL 'ferme la page
fermeInternet internet 'ferme Internet

MsgBox txt

'recopie dans un fichier texte
Open "c:rien.txt" For Output As #1
Print #1, txt
Close #1
'ouverture du fichier téléchargé
ThisWorkbook.FollowHyperlink "c:rien.txt", , True

End Sub


| Te serait-il possible de faire fichier/ouvrir avec :
| http://www.boursorama.com/cours.phtml?symbole=1rPFP
| pour voir si tu as aussi une erreur ?

Je ne comprends pas ta demande ...mais si tu veux ouvrir une adresse internet :
tu peux utiliser un API que tu mets dans le haut d'un module standard :

'Attention si le service de messagerie coupe ces lignes de code à des endroits inopportun.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'--------------------------------
Sub Ouvrir_URL()
Dim URL As String
URL = "http://www.boursorama.com/cours.phtml?symbole=1rPFP"
ShellExecute 0, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
End Sub
'--------------------------------

| Te serait-il possible de faire fichier/ouvrir avec :
| http://www.boursorama.com/cours.phtml?symbole=1rPFP
| pour voir si tu as aussi une erreur ?

Je ne comprends pas ta demande ...mais si tu veux ouvrir une adresse internet :
tu peux utiliser un API que tu mets dans le haut d'un module standard :

'Attention si le service de messagerie coupe ces lignes de code à des endroits inopportun.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

'--------------------------------
Sub Ouvrir_URL()
Dim URL As String
URL = "http://www.boursorama.com/cours.phtml?symbole=1rPFP"
ShellExecute 0, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus
End Sub
'--------------------------------




Avatar
JB
Bonjour,

Sur Excel2003: http://cjoint.com/?jyiQTnuVN8

JB



Bonjour tout le monde,

Jusqu'à la semaine dernière, je faisais des requêtes web avec excel
2000 en vba sur boursorama.
Cette semaine, j'ai refait mon pc et installé xp sp2 et office 2003.

Et impossible d'exécuter les requêtes.
Impossible d'ouvrir en directe par fichier/ouvrir et url.

-Ai-je mal paramétré Xp ou excel ?
-quelqu'un pourrait faire un essai svp ?
-des conseils ?

Merci d'avance.

P.S. j'ai beaucoup appris sur le site de , spécial thanks for him


Avatar
ocean
Bonjour JB et Michdenis,

Sur Excel2003: http://cjoint.com/?jyiQTnuVN8


Merci JB, j'utilise bien le même genre de macro.
La tienne fonctionne. Si je l'adapte sur boursorama et que j'enlève le
"on error", une erreur 1004 se produit.

Et ce depuis que j'ai refait mon pc, j'ai cru à un mauvais parametrage
mais il semble que le site boursorama ait mis une "protection".

La solution est de passer l'API de pour récupérer le source, de
créer un fichier c:rien.html (au lieu de rien.txt) et là il est
possible de faire une "requête web en local". Ce n'est pas très
élégant et surtout lourd.

Le code pour "parser" boursorama est écrit pour récupérer plus que
les cours mais je vais tester un autre site qui propose aussi des
données comptables et pas que les cours.

Merci encore à vous 2
Si vous avez une autre idée, merci d'avance.

1 2