Bonjour à tous,
Voilà, je sais comment récupérer le texte de pages web simple mais dans le cas présent, je souhaiterai ajouter des données à des zones de texte (Code postale) et sélectionner deux listes déroulantes (commune et domaine_travaux) pour en récupérer les valeurs...
Comment se positionner sur les items des listes déroulantes html à partir de vba ?
Dans l'onglet Feuil1 se trouvent les données à charger dans le formulaire (Code postale, Nom commune et domaine_travaux), la Feuil2 permet de collecter les données du site pour en extraire les noms des entreprises qui correspondent aux résultats (combinaison des Code postale, Nom commune et domaine_travaux).
La ligne qui plante est :
' InputRGENomCommune.Value = commune
sans doute car c'est une "form-select required" et non un "Input" mais je n'y connais rien en Html et encore moins en Php.
Voici mon code :
Difficile d'expliquer clairement mon problème par mail...
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 Sub test4() Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim InputRGECP As HTMLInputElement Dim InputRGENomCommune As HTMLInputElement Dim InputRGEDomaine As HTMLInputElement Dim InputRGEBouton As HTMLFormElement Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "http://www.monURL" Do While IE.Busy Application.Wait DateAdd("s", 10, Now) Loop Set IEDoc = IE.document Set InputRGECP = IEDoc.all("all[code_postal]") Set InputRGENomCommune = IEDoc.all("all[commune]") Set InputRGEDomaine = IEDoc.all("all[domaine_travaux]") For Each X In Sheets("Feuil1").Range("A2:" & Sheets("Feuil1").Range("A65536").End(xlUp).Address) Sheets("Feuil2").Cells.Clear CP = X.Value commune = X.Offset(0, 1).Value rayon = X.Offset(0, 2).Value domaine = X.Offset(0, 3).Value With Sheets("Feuil2").QueryTables.Add(Connection:="URL;http://www.monURL", Destination:=Sheets("Feuil2").Range("A1")) InputRGECP.Value = CP IEDoc.updateSettings ' InputRGENomCommune.Value = commune InputRGEDomaine.Value = domaine 'Bouton ci-dessous = valisation des données du formulaire pour afficher les résultats, libellé front office : "Localiser des entreprises" .Name = "op" .BackgroundQuery = True .WebSelectionType = xlEntirePage .WebFormatting = xlWebFormattingNone .Refresh BackgroundQuery:=False End With Next End Sub
Merci d'avance pour votre aide très précieuse.
Partager