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

Importer des données d'un site web

5 réponses
Avatar
Pierre
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.

5 réponses

Avatar
Clément Marcotte
Bonjour,

Tu peux aller voir par là, pour commencer:

http://jacxl.free.fr/cours_xl/cadres.html

Il y a cela aussi:

http://office.microsoft.com/fr-ca/assistance/CH062528421036.aspx

http://office.microsoft.com/fr-ca/assistance/HP052539241036.aspx

http://office.microsoft.com/fr-ca/assistance/HP030743001036.aspx


"Pierre" a écrit dans le message de
news:
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.





Avatar
-=lolol=-
Bonjour Pierre

Pour compléter la réponse de Clément, essaye comme ça :
- dans un fichier txt copie colle ce qui suit

WEB
1
http://www.polytek.fr/produits/c45pe.htm

Selection=4
Formatting=All
PreFormattedTextToColumnsúlse
ConsecutiveDelimitersAsOneúlse
SingleBlockTextImportúlse
DisableDateRecognitionúlse

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


Avatar
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

Application.DisplayAlerts = False
Sheets("visu").Delete


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

Avatar
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.