Importer sous Excel des données d'un site Web dynamique

Pour toutes vos questions à propos d'Excel ...

Importer sous Excel des données d'un site Web dynamique

Messagepar pagwai » 22 Juil 2008, 15:49

Bonjour,
je cherche à automatiser la récupération de données sur internet. En farfouillant pas mal, j'ai trouvé le principe de requête web qui semble répondre à mes attentes (mais peut-être pas?).
Je souhaite récupérer des données qui se trouvent sur le site :
http://sitadel.application.equipement.g ... eb/Sitadel
Si vous allez voir le lien, vous verrez qu'il y a des listes où il faut sélectionner une valeur :
On nous demande de choisir un département
On nous demande de choisir une commune dans le département
On nous demande le type d'information souhaitéE
Une fois les valeurs choisies, on a trois jolis tableaux avec toutes les infos qu'on veut.
Le problème est qu'en passant par la requête Web, je n'arrive pas à récupérer ces tableaux.
Par ailleurs, je souhaite avoir ces tableaux pour toutes les commune du département (Haute-Garonne), je souhaite donc automatiser le procéssus.
Quelqu'un peut-il me dire si c'est possible avec la requête web et, si ça ne l'est pas, me proposer une autre solution?

Merci par avance!!
pagwai
Nouveau venu
 
Messages: 4
Inscription: 22 Juil 2008, 11:51
Version Excel: 2003 FR

Messagepar V_Elbie » 22 Juil 2008, 18:27

:bv:

Un lien à suivre, la solution est peut être là :

http://office.microsoft.com/fr-fr/excel ... 01036.aspx

Cordialement,
VLB
V_Elbie
Membre impliqué
 
Messages: 1521
Inscription: 07 Avr 2007, 19:56
Localisation: Pays de Loire (49)
Version Excel: 2003FR maison-2007FR travail

Messagepar pagwai » 22 Juil 2008, 21:51

Oui merci, j'étais allé voir.
Le problème des requêtes Web est qu'elles ne gèrent pas les pages où il faut faire des sélections (méthode GET en PHP si j'ai bien compris) : si on reprend l'adresse dont j'ai fait mention plus haut, une fois qu'on effectue sa sélection, on visualise une page différente mais qui a la même adresse. Si bien que lorsqu'on effectue une requête Web, on obtient le contenu de la première page alors que nous souhaitons la deuxième...
pagwai
Nouveau venu
 
Messages: 4
Inscription: 22 Juil 2008, 11:51
Version Excel: 2003 FR

Messagepar MichelXld » 22 Juil 2008, 22:51

bonsoir

Une procédure pour débuter :

Code: Tout sélectionner
'Nécesssite d'activer les références
    'Microsoft HTML Objects Library
    'et
    'Microsoft Internet Controls
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Hsel As IHTMLElementCollection, Helem As IHTMLElementCollection
Dim winShell As New ShellWindows
Dim Valeur As Date

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True

IE.navigate "http://sitadel.application.equipement.gouv.fr/SitadelWeb/Sitadel"
    Do Until IE.readyState = READYSTATE_COMPLETE
    DoEvents
Loop

Set maPageHtml = IE.document
Set Hsel = maPageHtml.getElementsByTagName("select")

'Sélectionne l'ardèche (7eme element dans la 1ere liste)
Hsel(0).selectedIndex = 6

'Déclenche la fonction dans la page html
maPageHtml.parentWindow.execScript "SelectionDept();", "javascript"
    Valeur = Timer 'temporisation pour le rafraichissement de la page
    Do While Timer < Valeur + 2
    DoEvents
    Loop

Set IE = winShell(winShell.Count - 1)
Set maPageHtml = IE.document
Set Hsel = maPageHtml.getElementsByTagName("select")

'Sélectionne Albon (6eme element dans la 2eme liste)
Hsel(1).selectedIndex = 5
    Valeur = Timer 'temporisation pour le rafraichissement de la page
    Do While Timer < Valeur + 2
    DoEvents
    Loop



ensuite je suis bloqué car je n'arrive pas à déclencher la fonction javaScript :

Code: Tout sélectionner
function Deplacer(l1,l2)
Code: Tout sélectionner
Deplacer(document.sitadelcom.liste_communes,document.sitadelcom.sel_communes)




J'espère que ça pourra deja t'aider ...


bonne soirée
michel
MichelXld
Membre habitué
 
Messages: 75
Inscription: 11 Jan 2008, 18:57
Version Excel: 2007 FR

Messagepar pagwai » 23 Juil 2008, 08:45

Merci beaucoup, je pense que ça va m'être précieux.
Peux-tu juste m'expliquer ce que fait la partie javascript pour que j'essaye de trouver la réponse? J'avoue que ton niveau en développement est largement supérieur au mien donc j'avoue que je ne comprend pas tout...
Encore merci et n'hésites pas à me prévenir si tu trouves la fin de la solution!
pagwai
Nouveau venu
 
Messages: 4
Inscription: 22 Juil 2008, 11:51
Version Excel: 2003 FR

Messagepar pagwai » 23 Juil 2008, 09:14

Je viens d'essayer le code, merci, ça m'a fait avancé d'une étape (sélection de la commune).
Petite question supplémentaire : les deux lignes de code
function Deplacer(l1,l2)
et
Deplacer(document.sitadelcom.liste_communes,document.sitadelcom.sel_communes)
Doivent être mises à la suite?
Je vais me pencher dessus mais pour info, après avoir sélectionné la commune, je dois ensuite sélectionner "Mise en chantier" et non"Autorisations".
Encore merci
pagwai
Nouveau venu
 
Messages: 4
Inscription: 22 Juil 2008, 11:51
Version Excel: 2003 FR


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Alexa [Bot], Bing [Bot], Google Adsense [Bot] et 9 invités