Comment charger des données dans un formulaire HTML en ligne pour en récupérer les valeurs ?
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 :
Code:
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 |
Difficile d'expliquer clairement mon problème par mail...
Merci d'avance pour votre aide très précieuse.