Excel VBA getElementsByTagName() ne revenant à la dernière entrée
Mon entreprise, c'est avoir besoin de réinitialiser les noms d'utilisateur et mots de passe pour plus de 1000 personnes et au lieu de le faire emanually, je voudrais avoir VBA automatiser pour moi. Je l'ai connecter à la fenêtre de IE bien, mais le getElementsByTagName("input") renvoie uniquement la dernière balise input. Ci-dessous mon code:
Dim shellWins As ShellWindows
Dim IE As InternetExplorer
Dim HTMLdoc As HTMLDocument
Dim objElement As Object
Dim objCollection As IHTMLElementCollection
Dim name As String
Dim val As String, val2 As String
Dim a
Set shellWins = New ShellWindows
If shellWins.Count > 0 Then
' Get IE
Set IE = shellWins.Item(0)
Else
' Create IE
Set IE = New InternetExplorer
IE.Visible = True
End If
Set objCollection = IE.Document.getElementsByTagName("input")
For i = 0 To objCollection.Length
name = objCollection(, i).name
If Left(name, 6) = username Then
val = objCollection(i).Value
a = Split(val, "@")
If Left(a(1), 1) <> "s" Then
val2 = a(0) & sa & a(1)
Else
val2 = val
End If
objCollection(i).Value = val2
ElseIf Left(name, 6) = pswd Then
objCollection(i).Value = nPswd
End If
Next
Set shellWins = Nothing
Set IE = Nothing
Les balises input que je suis désireux sont dans les balises de tableau, qui pourrait être la cause? Si oui, comment pourrais-je référence les balises à l'intérieur de la table?
Vous en remercie d'avance.
- Avez-vous omettez un peu de code?
Vous devez vous connecter pour publier un commentaire.
Essayer cette boucle à la place:
Pas tout à fait sûr que: vous semblez avoir omis certains que le code de votre question.
Une autre approche serait d'utiliser une requête pour récupérer les données à partir d'une page web. par exemple, le code ci-dessous récupère les données à partir du site http://finance.yahoo.com/q?s=usdCAd=x et la place dans la Cellule A1:
Vous allez vous retrouver avec une grande quantité de lignes et des colonnes de chaînes récupérées à partir du site web. Vous pouvez ensuite traiter les informations et de récupérer les données que vous souhaitez.