3 pièce(s) jointe(s)
Simulation d'une case à cocher sur une page web avec vba
Bonjour,
Le problème est de simuler le choix d’une case sur une page web avec visual bassic.
L’exercice vient du site http://qwazerty.developpez.com/tutor...-et-vba-excel/
Section IV-L-1 intitulé : Trajet direct.
Pièce jointe 220942
Code source de la page web,
Pièce jointe 220944
Programme vba
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
| Sub caseacocher()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim CaseDirect As HTMLInputElement
'Chargement d'une page Web Google
IE.navigate "http://www.voyages-sncf.com/billet-train"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.document
'On pointe la case à cocher
Set CaseDirect = IEDoc.all("DIRECT_TRAVEL_CHECK")
'On simule un clic sur la case à cocher
CaseDirect.Click
'On attend la fin de la recherche
WaitIE IE
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub |
Le but, on va sur le site de la sncf, on ouvre la page web, et on simule la case à cocher de « trajet direct ». Cet exercice fonctionne très bien, mais quand je le transpose à ce que je veux faire (vir ci-dessous) ça ne fonctionne plus d’où mon étonnement ! Le code erreur est
“run-time error ‘91’ : Object variable or with block not set.”
Le programme consiste à choisir cac40 (cocher la case cac40)
Pièce jointe 220945
Programme vba
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
| Sub RechercheVBAExcel()
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim CaseDirect As HTMLInputElement
'Chargement d'une page Web Google
IE.navigate "http://www.abcbourse.com/download/historiques.aspx"
'Affichage de la fenêtre IE
IE.Visible = True
'On attend le chargement complet de la page
WaitIE IE
'On pointe le membre Document
Set IEDoc = IE.document
'On pointe la case à cocher
Set CaseDirect = IEDoc.all("ct100_BodyABC_xcac40p")
'On simule un clic sur la case à cocher
CaseDirect.Click
'On attend la fin de la recherche
WaitIE IE
'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing
End Sub
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub |
c'est le même programme, alors pourquoi cette erreur
“run-time error ‘91’ : Object variable or with block not set.”
Merci de votre aide