Bonjour,

Je vous écris car je suis en train d'écrire une petite application qui sert à écrire une référence dans une zone de texte d'un site (oscaro), à lancer une recherche en simulant un click sur le bouton recherche et qui puisse récupérer les résultats (ou une partie) dans une table excel et ce de facon totalement automatisée.

Mon Code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub piloterPageWeb()
 
'Avant 'utiliser la macro il faut activer Microsoft HTML Objects Library dans les references
'Idem avec Microsoft Internet Controls dans les reference
 
'Declaration des variables
'--------------------------
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Dim Monbouton As Object
 
'Je créer mon objet page internet sur lequel excel va avoir la main
Set IE = CreateObject("InternetExplorer.Application")
 
'Je rends visible la fenetre internet
IE.Visible = True
 
'Je charge l'adresse du site que je veux piloter
IE.navigate "http://www.oscaro.com"
 
'J'attends la fin du chargement de la page avant d'aller plus loin
Do While IE.Busy  'IE.readyState = READYSTATE_COMPLETE
    DoEvents
Loop
 
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")
 
'Cette partie sert à injecter la ref depuis excel vers la page web html
'-----------------------------------------------------------------------
For i = 0 To Helem.Length - 1
    If Helem(i).getAttribute("name") = "toFind" Then Helem(i).Value = "819971" '819971 est la référence
    If Helem(i).getAttribute("name") = "submit" Then Set Monbouton = Helem(i)
Next
 
Monbouton.Click
 
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
 
'Cette partie sert à récupérer l'url de la page web correpondant à la reférence
'-------------------------------------------------------------------------------
 
???
 
End Sub
Jusqu'à maintenant, je suis capable de copier une référence dans la zone de texte et lancer la recherche et attendre que les résultats s'affichent.

La ou je rencontre des difficultés depuis 3 jours, c'est dans le rapatriement des données. J'avais pensé à repiquer le code vba d'une requête internet d'excel mais je suis bloqué.

En effet l'url que je rentre au début est http://www.oscaro.com.

Après avoir lancé la recherche de ma référence, l'url devient http://www.oscaro.com/Catalog/PartsList/Find

Mon problème réside dans le fait que cette url n'est pas porteuse des informations liées au résulat de ma recherche pour le cas précise de la reférence 819971. En effet si je prends l'url http://www.oscaro.com/Catalog/PartsList/Find et que je la colle dans une nouvelle page web et que je lance le chargement, j'ai le message suivant "Désolé, nous n'avons trouvé aucune référence correspondant à votre recherche".

Par contre j'ai remarqué en regardant le code source associé à la page de résultat, que les urls des pages associés aux différents produits apparaissent bien dans le code source. PAr exemple le premier produit a pour url précédée de la balise html "href=":

http://www.oscaro.com/thermostat-d-e...1-869046-316-p

Ma question est des lors, quel code/methode vba dois je utilisé pour faire une recherche en fonction des balises "href" dans le code source de ma page associé au résultat de la recherche?

Conscient de la dfifficulté de ma question, et désirant etre acteur de programmation de cette application, je m'adresse à vous pour etre orienter vers du cours me permettant de maitriser les commandes vba dédiées à la manipulation des ADO ou DAO, ou pour etre orienter vers les "technologies" à utiliser.

Merci d'avance,
Cordialement
roland