Bonjour à tous !!!
Je suis débutant (je pars de zéro ! ) en programmation vba (pour Excel 2013 sous Windows7).
J’essaie d’écrire un programme pour récupérer des infos sur un site web à partir d'un tableau Excel pour ensuite les réintégrer dedans.
Pour être « franc » et plus précis (vous le comprendrez en voyant le début du code), ce serait pour compléter des infos sur un tableau un peu comme le modèle dans excel : « liste de films ». En « automatisant » bien sur l’enregistrement des infos qui m’intéressent !
Je suis donc parti du "code source" de la page d'accueil du site (je ne pense "déroger" à des "droits privés", ce faisant...) et repéré les valeurs concernées avec leurs propriétés.
Je voudrai dans un premier temps pouvoir « placer » une valeur dans le champ « recherche » et lancer celle-ci automatiquement. Je verrai après comment récupérer mes données…
Mais je bloque déjà sur une partie de mon code (ça commence mal et j’ai l’impression que ce n’est pas fini !!!) avec ce message d'erreur:
"Erreur d'exécution '91': variable objet ou variable de bloc with non définie"...
Le code bloque à cet endroit :
Set Input_allocine_ZoneTexte = IEDoc.all("search_input")
Est-ce que quelqu’un pourrait m’aider, SVP ?
Voici le 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 44 45
| Sub Recherche_infos_films()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
'avec Dim Input_allocine_ZoneTexte as HTMLInputElement ou Dim Input_allocine_ZoneTexte As Variant, le code ne fonctionne pas...
Dim Input_allocine_ZoneTexte As Variant
Dim Input_allocine_Bouton As HTMLButtonElement
'Chargement d'une page Web
IE.Navigate "http://www.allocine.fr/"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
'On pointe le membre Document
Set IEDoc = IE.document
'On pointe notre Zone de texte avec la formule IEDoc.all("q")ou IEDoc.all("search_input")
Set Input_allocine_ZoneTexte = IEDoc.all("search_input")
'On définit le texte que l'on souhaite placer à l'intérieur
Input_allocine_ZoneTexte.Value = "titre au hasard"
'On pointe notre bouton
Set Input_allocine_Bouton = IEDoc.all("btn_form")
'On simule un clic
Input_allocine_Bouton.Click
'On attend le chargement complet de la page
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub |
Ah oui, je vous précise qu'au début, à la ligne 25, j'avais écris:
Set Input_allocine_ZoneTexte = IEDoc.all("q")
Mais comme bizarrement il y a plusieurs " id="q"", j'ai remplacé le code par :
Set Input_allocine_ZoneTexte = IEDoc.all("search_input")
pour "spécifier" la valeur qui m’intéresse, main en vain...
Partager