Bonjour,
Présentation : je suis juriste et je bidouille quelques macros excel pour m'amuser le WE sans avoir aucune base vba requise (donc je galère pas mal)
Je cherche au moyen d'une macro excel à récupérer diverses informations comprises dans une page web et à les ordonner dans une feuille de classeur.
J'ai lu et essayer de comprendre l'article sur la manipulation d'IE par VBA https://www.developpez.net/forums/d1...lorer-via-vba/ et http://qwazerty.developpez.com/tutor...-et-vba-excel/
J'ai parcouru d'autres discussions dont
https://www.developpez.net/forums/d1...ls-d-page-web/
et surtout https://www.developpez.net/forums/d1...cles-internet/
Je n'ai pas retenu la méthode de l'article car il faut activer des librairies et je sais que l'utilisateur final ne saura pas comment procéder.
J'ai 4 difficultés principales (rien que ça).
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 Sub DemoIE() Dim yNum As Byte Dim zNum As Byte Const URL$ = "https://www.xxxxxx" With CreateObject("InternetExplorer.Application") .navigate URL While .Busy Or .readyState < 4: DoEvents: Wend With .document.all.TABLE2 T$ = .all(0).innerText End With .Quit MsgBox T, vbInformation, " Résultat" End With End Sub
1°) les informations que je cherche à reprendre sont comprises dans 4 tables numérotées de 2 à 5. je pourrai évidemment copier le code 3 fois en modifiant le nom de la table (TABLE2, TABLE3, TABLE4, TABLE5) mais je voudrai boucler mais je ne parviens pas trouver la bonne syntaxe With .document.all.TABLE <-(variableYNum)
2°) la je récupère dans ma variable l'ensemble des éléments de la tablemais au sein de chacune des tables je souhaiterai davantage récupérer séparément dans chacune des lignes un texte suivant toujours le même texte.
par exemple, je voudrais récupérer ce qui suit "Nom :" , "Prénom :", "Age :"
la structure de la table est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3<tr><td>Nom :</td><td> xxxx</td></tr> <tr><td>Prénom : </td><td>yyyy</td></tr> <tr><td>Age : </td><td>29 ans</td></tr>
A priori les données cherchées ne sont pas affublées d'id ou de name (vous m'aurez compris).
Est-il possible de récupérer ce qui est compris dans les balises td qui suivent le texte recherché ?
EDIT : je récupère désormais avec children les seules données qui m'intéressent. J'aimerai donc savoir s'il existe une instruction qui permet de rechercher dans le code de la page source une chaine de 15 caractères commençant par "dans le " et de copier cette chaine dans une variable.
3°) en fait les données à collecter sont dans 16 tables réparties dans 4 pages internet ayant toutes la même url (il faut cliquer sur les numéros des pages suivantes pour accéder aux tables suivantes)
J'aurai voulu trouver comment faire pour charger la page suivante sachant que c'est une fonction javascript pageSearch (avec la méthode décrite dans l'article sus-visé cela aurait été
IEDoc.parentWindow.execScript "pageSearch(" & zNum & ")", "JavaScript")
4°) concerne la mise en forme des résultats dans une feuille excel mais c'est trop éloigné du sujet.
Merci à ceux qui ont pris la peine de me lire et au sein d'eux à ceux qui pourrait me donner des pistes.
nullos
Partager