Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

10 réponses

1 2
Avatar
michdenis
Bonjour Ocean,

Requêtes : Tu parles d'une ODBC ?
Est-ce que tes requêtes ont été créées d'abord avec office 2000 ?

As-tu essayé de créer une requête avec excel 2003 ?
Est-ce que cela fonctionne ?

Il se peut tout simplement que sur la version office 2000 et office 2003
n'aient pas été équipé de la même version du MDAC ....(pilote de l'ODBC)

MDAC = Microsoft Data Access Components
ODBC = Open DataBase Connectivity


Salutations!


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

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 michdenis,

Merci de ta réponse.
Ce sont des requêtes web standard d'excel celles dans
données/données externes/nouvelle requête sur le web. puis passées
en macro. rien de spécial.

Bien sûr que j'ai essayé de les faire à la main en 2003. "impossible
d'ouvrir http://boursorama.com/cours.phtml?symbole=1rPFP. Connexion
Internet établie mais imposssible de récupérer les données"

J'ai essayé d'enlever le firewall d'xp.

Quelqu'un voudrait bien lancer cette requête ?
(ou me dire si c'est possible de tenter qq chose)

Merci d'avance.


Bonjour Ocean,

Requêtes : Tu parles d'une ODBC ?
Est-ce que tes requêtes ont été créées d'abord avec office 2000 ?

As-tu essayé de créer une requête avec excel 2003 ?
Est-ce que cela fonctionne ?

Il se peut tout simplement que sur la version office 2000 et office 2003
n'aient pas été équipé de la même version du MDAC ....(pilote d e l'ODBC)

MDAC = Microsoft Data Access Components
ODBC = Open DataBase Connectivity


Salutations!


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

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
michdenis
Une adresse :
http://office.microsoft.com/fr-ca/assistance/HA010450851036.aspx



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

Bonjour michdenis,

Merci de ta réponse.
Ce sont des requêtes web standard d'excel celles dans
données/données externes/nouvelle requête sur le web. puis passées
en macro. rien de spécial.

Bien sûr que j'ai essayé de les faire à la main en 2003. "impossible
d'ouvrir http://boursorama.com/cours.phtml?symbole=1rPFP. Connexion
Internet établie mais imposssible de récupérer les données"

J'ai essayé d'enlever le firewall d'xp.

Quelqu'un voudrait bien lancer cette requête ?
(ou me dire si c'est possible de tenter qq chose)

Merci d'avance.


Bonjour Ocean,

Requêtes : Tu parles d'une ODBC ?
Est-ce que tes requêtes ont été créées d'abord avec office 2000 ?

As-tu essayé de créer une requête avec excel 2003 ?
Est-ce que cela fonctionne ?

Il se peut tout simplement que sur la version office 2000 et office 2003
n'aient pas été équipé de la même version du MDAC ....(pilote de l'ODBC)

MDAC = Microsoft Data Access Components
ODBC = Open DataBase Connectivity


Salutations!


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

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
michdenis
C'est ce qu'il faut savoir, ce ne sont pas tous les sites
qui se prêtent bien à des importations de données de ce
type. Ces données doivent avoir été créé en utilisant,
je crois « des tableaux » au moment de la conception
du ou des sites internet visés. Or, je suppose que certains
créateurs de site internet ne sont, soient pas au courant
de la chose ou soit qu'ils le font volontairement
lorsqu'il s'agit de rendre accessible les données qu'ils
publient sur leur site.

Quoi qu'il en soit, lorsque tu es sur le site en question,
à partir du menu (Internet Explorer) Affichage/Source/le
code HTML de la page visée s'affiche et là, avec un petit
peu de pratique et de perspicacité, tu peux déceler
le « numéro du tableau » où sont inscrites les données que
tu veux importer. (Je n'ai pas dit que cela était facile!!!)

Dans le code que je t'ai soumis, ce numéro se transmet à
cette ligne de code :
'Import the 5th table on the page
.WebTables = "5"
La signification de ce "5" renseigne Excel à savoir que tu
veux la 5e table de ladite page qui est en faite la
cinquième occurrence
d'un "Tag " <Table> dans le code HTML.

Voici un exemple complet issu du volume :
"Excel 2002 Programmer's Reference" créé par
Stephen Bullen, John Green, Rob Bovey, Robert Rosemberg
ISBN: 1861005709

'----------------------------------------
Sub GetRatesWithWebQuery()

Dim oBk As Workbook
Dim oQT As QueryTable

'Store the current settings of Excel's number formatting
Dim sDecimal As String
Dim sThousand As String
Dim bUseSystem As Boolean

'Create a new workbook
Set oBk = Workbooks.Add

'Create a query table to download USD rates
With oBk.Worksheets(1)
Set oQT = .QueryTables.Add( _
Connection:="URL;http://www.x-rates.com/tables/USD.html", _
Destination:=.Range("A1"))
End With

'Set the QueryTable's properties
With oQT
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is opened
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With

End Sub
'----------------------------------------











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

Bonjour michdenis,

Merci de ta réponse.
Ce sont des requêtes web standard d'excel celles dans
données/données externes/nouvelle requête sur le web. puis passées
en macro. rien de spécial.

Bien sûr que j'ai essayé de les faire à la main en 2003. "impossible
d'ouvrir http://boursorama.com/cours.phtml?symbole=1rPFP. Connexion
Internet établie mais imposssible de récupérer les données"

J'ai essayé d'enlever le firewall d'xp.

Quelqu'un voudrait bien lancer cette requête ?
(ou me dire si c'est possible de tenter qq chose)

Merci d'avance.


Bonjour Ocean,

Requêtes : Tu parles d'une ODBC ?
Est-ce que tes requêtes ont été créées d'abord avec office 2000 ?

As-tu essayé de créer une requête avec excel 2003 ?
Est-ce que cela fonctionne ?

Il se peut tout simplement que sur la version office 2000 et office 2003
n'aient pas été équipé de la même version du MDAC ....(pilote de l'ODBC)

MDAC = Microsoft Data Access Components
ODBC = Open DataBase Connectivity


Salutations!


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

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
Bonsoir michdenis,

Ta macro fonctionne parfaitement mais si je mets l'url de boursorama
avec une boucle pour identifier la table que je veux, j'ai
systématiquement l'erreur 1004.

J'ai aussi essayé le sub api de qui récupère le texte, cela
marche mais c'est trop lourd à dépouiller.

Je suis très embêté car j'ai une chaine que retraite ces données.

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 ?

J'abuse de ta gentillesse, si ce n'est pas possible, je comprends tout
à fait et te remercie encore de ton aide.


C'est ce qu'il faut savoir, ce ne sont pas tous les sites
qui se prêtent bien à des importations de données de ce
type. Ces données doivent avoir été créé en utilisant,
je crois « des tableaux » au moment de la conception
du ou des sites internet visés. Or, je suppose que certains
créateurs de site internet ne sont, soient pas au courant
de la chose ou soit qu'ils le font volontairement
lorsqu'il s'agit de rendre accessible les données qu'ils
publient sur leur site.

Quoi qu'il en soit, lorsque tu es sur le site en question,
à partir du menu (Internet Explorer) Affichage/Source/le
code HTML de la page visée s'affiche et là, avec un petit
peu de pratique et de perspicacité, tu peux déceler
le « numéro du tableau » où sont inscrites les données que
tu veux importer. (Je n'ai pas dit que cela était facile!!!)

Dans le code que je t'ai soumis, ce numéro se transmet à
cette ligne de code :
'Import the 5th table on the page
.WebTables = "5"
La signification de ce "5" renseigne Excel à savoir que tu
veux la 5e table de ladite page qui est en faite la
cinquième occurrence
d'un "Tag " <Table> dans le code HTML.

Voici un exemple complet issu du volume :
"Excel 2002 Programmer's Reference" créé par
Stephen Bullen, John Green, Rob Bovey, Robert Rosemberg
ISBN: 1861005709

'----------------------------------------
Sub GetRatesWithWebQuery()

Dim oBk As Workbook
Dim oQT As QueryTable

'Store the current settings of Excel's number formatting
Dim sDecimal As String
Dim sThousand As String
Dim bUseSystem As Boolean

'Create a new workbook
Set oBk = Workbooks.Add

'Create a query table to download USD rates
With oBk.Worksheets(1)
Set oQT = .QueryTables.Add( _
Connection:="URL;http://www.x-rates.com/tables/USD.html", _
Destination:=.Range("A1"))
End With

'Set the QueryTable's properties
With oQT
.Name = "USD"

'State that we're selecting a specific table
.WebSelectionType = xlSpecifiedTables

'Import the 5th table on the page
.WebTables = "5"

'Ignore the web page's formatting
.WebFormatting = xlWebFormattingNone

'Do not try to recognise dates
.WebDisableDateRecognition = True

'Don't automatically refresh the query each time the file is open ed
.RefreshOnFileOpen = False

'Waiting for the query to complete before continuing
.BackgroundQuery = True

'Save the query data with the workbook
.SaveData = True

'Adjust column widths to autofit new data
.AdjustColumnWidth = True
End With

With Application
'Remember Excel's current number format settings
sDecimal = .DecimalSeparator
sThousand = .ThousandsSeparator
bUseSystem = .UseSystemSeparators

'Set Excel's separators to match those of the web site
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = True

'Ignore any errors raised by the query failing
On Error Resume Next

'Perform the query, waiting for it to complete
oQT.Refresh BackgroundQuery:úlse

'Reset Excel's number format settings
.DecimalSeparator = sDecimal
.ThousandsSeparator = sThousand
.UseSystemSeparators = bUseSystem
End With

End Sub
'----------------------------------------











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

Bonjour michdenis,

Merci de ta réponse.
Ce sont des requêtes web standard d'excel celles dans
données/données externes/nouvelle requête sur le web. puis passées
en macro. rien de spécial.

Bien sûr que j'ai essayé de les faire à la main en 2003. "impossible
d'ouvrir http://boursorama.com/cours.phtml?symbole=1rPFP. Connexion
Internet établie mais imposssible de récupérer les données"

J'ai essayé d'enlever le firewall d'xp.

Quelqu'un voudrait bien lancer cette requête ?
(ou me dire si c'est possible de tenter qq chose)

Merci d'avance.


Bonjour Ocean,

Requêtes : Tu parles d'une ODBC ?
Est-ce que tes requêtes ont été créées d'abord avec office 20 00 ?

As-tu essayé de créer une requête avec excel 2003 ?
Est-ce que cela fonctionne ?

Il se peut tout simplement que sur la version office 2000 et office 2003
n'aient pas été équipé de la même version du MDAC ....(pilote de l'ODBC)

MDAC = Microsoft Data Access Components
ODBC = Open DataBase Connectivity


Salutations!


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

Bonjour tout le monde,

Jusqu'à la semaine dernière, je faisais des requêtes web avec exc el
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
michdenis
| 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
ocean
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 inte rnet :
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 e ndroits inopportun.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecu teA" _
(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, vbNorm alFocus
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 inte rnet :
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 e ndroits inopportun.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecu teA" _
(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, vbNorm alFocus
End Sub
'--------------------------------


Avatar
michdenis
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
ocean
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 in ternet :
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 "ShellExe cuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As Strin g, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowC md 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, vbNo rmalFocus
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 in ternet :
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 "ShellExe cuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As Strin g, _
ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowC md 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, vbNo rmalFocus
End Sub
'--------------------------------




Avatar
michdenis
Ce code fonctionne :

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
'--------------------------------




1 2