J'ai cru comprendre qu'il était possible d'importer des données d'un site
web par une requête Excel.
Mais comme je débute, qu'est-ce qu'une requête ?
Est-ce un bout de programme en VBA ?
Pour être plus concret, en fait je souhaite m'intéresser à la bourse.
sur le site de boursorama on peut avoir une synthèse des comptes des
sociétés cotées :
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPSOIE
ou bien
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPMALT
Seuls les derniers codes changent, et j'en connais la liste complète, donc
pas de pb pour moi pour créer une série de lien des sociétés que je veux.
Mais comment importer les données des pages ci-dessus au sein d'une feuille
Excel ?
- enregistre ce fichier avec une extension iqy (par exemple "monfichier.iqy) - double clique dessus - accepte le message de message de mise en garde si tu en a un en clliquant sur "ouvrir" => voilà une première chose facile :-)
une autre solution serait de passer par fichier / ouvrir / http://www.lesitequejeveuxlire.com et vois si tu peux chercher et trouver tes données
cordialement @+lolo
Bonsoir
J'ai cru comprendre qu'il était possible d'importer des données d'un site web par une requête Excel.
Mais comme je débute, qu'est-ce qu'une requête ? Est-ce un bout de programme en VBA ?
Pour être plus concret, en fait je souhaite m'intéresser à la bourse. sur le site de boursorama on peut avoir une synthèse des comptes des sociétés cotées :
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPSOIE ou bien http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPMALT
Seuls les derniers codes changent, et j'en connais la liste complète, donc pas de pb pour moi pour créer une série de lien des sociétés que je veux. Mais comment importer les données des pages ci-dessus au sein d'une feuille Excel ?
Merci de vos lumières. P.
Bonjour Pierre
Pour compléter la réponse de Clément, essaye comme ça :
- dans un fichier txt copie colle ce qui suit
- enregistre ce fichier avec une extension iqy (par exemple "monfichier.iqy)
- double clique dessus
- accepte le message de message de mise en garde si tu en a un en clliquant
sur "ouvrir"
=> voilà une première chose facile :-)
une autre solution serait de passer par fichier / ouvrir /
http://www.lesitequejeveuxlire.com et vois si tu peux chercher et trouver
tes données
cordialement
@+lolo
Bonsoir
J'ai cru comprendre qu'il était possible d'importer des données d'un
site web par une requête Excel.
Mais comme je débute, qu'est-ce qu'une requête ?
Est-ce un bout de programme en VBA ?
Pour être plus concret, en fait je souhaite m'intéresser à la bourse.
sur le site de boursorama on peut avoir une synthèse des comptes des
sociétés cotées :
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPSOIE
ou bien
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPMALT
Seuls les derniers codes changent, et j'en connais la liste complète,
donc pas de pb pour moi pour créer une série de lien des sociétés que
je veux.
Mais comment importer les données des pages ci-dessus au sein d'une
feuille Excel ?
- enregistre ce fichier avec une extension iqy (par exemple "monfichier.iqy) - double clique dessus - accepte le message de message de mise en garde si tu en a un en clliquant sur "ouvrir" => voilà une première chose facile :-)
une autre solution serait de passer par fichier / ouvrir / http://www.lesitequejeveuxlire.com et vois si tu peux chercher et trouver tes données
cordialement @+lolo
Bonsoir
J'ai cru comprendre qu'il était possible d'importer des données d'un site web par une requête Excel.
Mais comme je débute, qu'est-ce qu'une requête ? Est-ce un bout de programme en VBA ?
Pour être plus concret, en fait je souhaite m'intéresser à la bourse. sur le site de boursorama on peut avoir une synthèse des comptes des sociétés cotées :
http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPSOIE ou bien http://www.boursorama.com/profil/profil_finance.phtml?symbole=1rPMALT
Seuls les derniers codes changent, et j'en connais la liste complète, donc pas de pb pour moi pour créer une série de lien des sociétés que je veux. Mais comment importer les données des pages ci-dessus au sein d'une feuille Excel ?
Merci de vos lumières. P.
John-Pet
Salut Pierre
voilà un code a mettre dans un module
puis tu lance la macro lit_code_page_Web
tu auras dans ton fichier une page nommé visu ou se trouvera le code source de ta page HTML, il ne reste plus qu'a trouver tes informations dedans et les traiter j'ai regardé tout y est ( si tu veux traiter en automatique il y a moyen en VBA )
pour changer d'action rentre le nouveau code après Action =" ", mais là aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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 Dim url_page As String
Action = "1rPSOIE" url_page = "http://www.boursorama.com/profil/profil_finance.phtml?symbole=" & Action 'ouvre Internet internet = OuvreInternet("toto", 0, vbNullString, vbNullString, 0) 'ouvre la page Web URL = Ouvrepage(internet, url_page, vbNullString, 0, &H400000 Or &H4000000 Or &H80000000, 0)
'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
'ferme la page fermeInternet URL 'ferme Internet 'fermeInternet internet
'MsgBox txt
'recopie dans un fichier texte Open "c:code source.txt" For Output As #1 Print #1, txt Close #1
'ouverture du fichier téléchargé dans excel lien = "TEXT;c:code source.txt"
'ouvre la feuille visu Sheets.Add.Name = "visu" With ActiveSheet.QueryTables.Add(Connection:=lien, Destination:=Range("A1")) .AdjustColumnWidth = False .TextFileTabDelimiter = False '.TextFileOtherDelimiter = "=" .Refresh BackgroundQuery:úlse End With
'detruit le fichier texte Kill "c:code source.txt" Application.DisplayAlerts = True
End Sub
JP
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Salut Pierre
voilà un code a mettre dans un module
puis tu lance la macro lit_code_page_Web
tu auras dans ton fichier une page nommé visu ou se trouvera le code
source de ta page HTML, il ne reste plus qu'a trouver tes informations
dedans et les traiter
j'ai regardé tout y est ( si tu veux traiter en automatique il y a
moyen en VBA )
pour changer d'action rentre le nouveau code après Action =" ",
mais là aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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
Dim url_page As String
Action = "1rPSOIE"
url_page =
"http://www.boursorama.com/profil/profil_finance.phtml?symbole=" &
Action
'ouvre Internet
internet = OuvreInternet("toto", 0, vbNullString, vbNullString, 0)
'ouvre la page Web
URL = Ouvrepage(internet, url_page, vbNullString, 0, &H400000 Or
&H4000000 Or &H80000000, 0)
'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
'ferme la page
fermeInternet URL
'ferme Internet
'fermeInternet internet
'MsgBox txt
'recopie dans un fichier texte
Open "c:code source.txt" For Output As #1
Print #1, txt
Close #1
'ouverture du fichier téléchargé dans excel
lien = "TEXT;c:code source.txt"
'ouvre la feuille visu
Sheets.Add.Name = "visu"
With ActiveSheet.QueryTables.Add(Connection:=lien,
Destination:=Range("A1"))
.AdjustColumnWidth = False
.TextFileTabDelimiter = False
'.TextFileOtherDelimiter = "="
.Refresh BackgroundQuery:úlse
End With
'detruit le fichier texte
Kill "c:code source.txt"
Application.DisplayAlerts = True
End Sub
JP
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
tu auras dans ton fichier une page nommé visu ou se trouvera le code source de ta page HTML, il ne reste plus qu'a trouver tes informations dedans et les traiter j'ai regardé tout y est ( si tu veux traiter en automatique il y a moyen en VBA )
pour changer d'action rentre le nouveau code après Action =" ", mais là aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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 Dim url_page As String
Action = "1rPSOIE" url_page = "http://www.boursorama.com/profil/profil_finance.phtml?symbole=" & Action 'ouvre Internet internet = OuvreInternet("toto", 0, vbNullString, vbNullString, 0) 'ouvre la page Web URL = Ouvrepage(internet, url_page, vbNullString, 0, &H400000 Or &H4000000 Or &H80000000, 0)
'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
'ferme la page fermeInternet URL 'ferme Internet 'fermeInternet internet
'MsgBox txt
'recopie dans un fichier texte Open "c:code source.txt" For Output As #1 Print #1, txt Close #1
'ouverture du fichier téléchargé dans excel lien = "TEXT;c:code source.txt"
'ouvre la feuille visu Sheets.Add.Name = "visu" With ActiveSheet.QueryTables.Add(Connection:=lien, Destination:=Range("A1")) .AdjustColumnWidth = False .TextFileTabDelimiter = False '.TextFileOtherDelimiter = "=" .Refresh BackgroundQuery:úlse End With
'detruit le fichier texte Kill "c:code source.txt" Application.DisplayAlerts = True
End Sub
JP
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
John-Pet
John-Pet a présenté l'énoncé suivant :
Salut Pierre
voilà un code a mettre dans un module
puis tu lance la macro lit_code_page_Web
tu auras dans ton fichier une page nommé visu ou se trouvera le code source de ta page HTML, il ne reste plus qu'a trouver tes informations dedans et les traiter j'ai regardé tout y est ( si tu veux traiter en automatique il y a moyen en VBA )
pour changer d'action rentre le nouveau code après Action =" ", mais là aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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 Dim url_page As String
Application.DisplayAlerts = False re
j'ai oublié de te dire de créer un feuille nommée visu avant de lancer pour la premiere fois la macro
JP
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
John-Pet a présenté l'énoncé suivant :
Salut Pierre
voilà un code a mettre dans un module
puis tu lance la macro lit_code_page_Web
tu auras dans ton fichier une page nommé visu ou se trouvera le code source
de ta page HTML, il ne reste plus qu'a trouver tes informations dedans et les
traiter
j'ai regardé tout y est ( si tu veux traiter en automatique il y a moyen en
VBA )
pour changer d'action rentre le nouveau code après Action =" ", mais là
aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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
Dim url_page As String
Application.DisplayAlerts = False
re
j'ai oublié de te dire de créer un feuille nommée visu avant de lancer
pour la premiere fois la macro
JP
--
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
tu auras dans ton fichier une page nommé visu ou se trouvera le code source de ta page HTML, il ne reste plus qu'a trouver tes informations dedans et les traiter j'ai regardé tout y est ( si tu veux traiter en automatique il y a moyen en VBA )
pour changer d'action rentre le nouveau code après Action =" ", mais là aussi tu peux le rentrer dans ta feuille et le recuperer en VBA
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 Dim url_page As String
Application.DisplayAlerts = False re
j'ai oublié de te dire de créer un feuille nommée visu avant de lancer pour la premiere fois la macro
JP
-- Ceci est une signature automatique de MesNews. Site : http://www.mesnews.net
Pierre
"John-Pet" a écrit dans le message de news:
John-Pet a présenté l'énoncé suivant :
Merci à tous. Et particulièrement à John pour son code, que je vais devoir décortiquer .
P.
"John-Pet" <John-Pet@wanadoo.fr> a écrit dans le message de news:
mn.e2e87d4cac273a5a.24667@wanadoo.fr...
John-Pet a présenté l'énoncé suivant :
Merci à tous.
Et particulièrement à John pour son code, que je vais devoir décortiquer .