Je crois bien l'avoir pourtant déjà testé dimanche sur la version 2007 d'Excel,
je vais de nouveau regarder ce soir notamment pour la fonction VBA IsNull et les éléments threads & threadlist …
localName n'est pas interne à Excel mais bien à Internet Explorer !
Mais là aussi, peu importe la version d'IE (tests sous v9, v10 et v11) …
Quant à l'élément "navbar_loginform", dans la page du login c'est le deuxième élément de la collection forms du Document
mais pas dans la page des abonnements !
Une alternative est si IE.locationName (ou IE.Document.title) ne correspond pas à la page des abonnements,
c'est donc la page du login (dans le meilleur du monde Web !) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub DemoDVPlocationNameSimpleAlternative()
Const TITRE$ = "Abonnements - Forum du club des développeurs et IT Pro"
With CreateObject("InternetExplorer.Application")
.Navigate "http://www.developpez.net/forums/subscription.php"
While .Busy Or .ReadyState < 4: DoEvents: Wend
.Visible = True
If .locationName <> TITRE Then
With .Document.forms("navbar_loginform")
.all(3).Value = "Identifiant"
.all(4).Value = "Mot de passe"
.submit
End With
While .locationName <> TITRE: DoEvents: Wend
End If
' suite du traitement ici
End With
End Sub |
Ou encore en modifiant la ligne n°9 ainsi : If .locationName = "Forum du club des développeurs et IT Pro" Then …
Il m'est déjà arrivé de remplacer le fameux WaitIE du tutoriel par un test sur locationName,
bien pratique lors du chargement d'une page intermédiaire avant la page finale (redirection) …
Partager