Re : VBA - piloter une page internet explorer à partir d'Excel
Bnjour j'ai le même message d'erreur que toi Victoire mais c'est pas sur la ligne que tu as souligné. j ai corrigé sur cette ligne en mettant IE as New InternetExplorer
Je reviens sur ce message d'erreur deux ans après toi en espérant que tu t es mieux expertisé et que tu pourras m'aider. Je veux faire des recherches sur le site Siteweb.com selon certains paramètres qui sont dans les colonnes C, Q et R de mon fichier excel. LA MACRO Tourne bien sur plusieurs lignes mais çà s'arrête toujours au bout d'une dizaine de minute et m'envoie le message d'erreurerreur d'exécution '-2147023179 (800706b5), "Erreur Automation Interface inconnue"
et au débogage soit c'est la ligne 'ie.visible = False' qui est en jaune soit c'est la dernière boucle de DoEvents.
Malheureusement je ne peux joindre de fichier excel vu la confidentialité des information. Mais voici le code de ma macro
sub compar()
Dim r%
r = Selection.Row
Dim ie As New InternetExplorer
ie.Visible = False 'nonvisible sur l'ouverture du site'
ie.navigate ("https://www.google.fr/?gws_rd=ssl#q=" & "Siteweb.com " & Cells(r, "C") & " " & Cells(r, "R")) 'ouvrir directement google avec la recherche des tiers'
While ie.ReadyState <> 4 'en attente qu'il soit terminé'
DoEvents
Wend
Set dmt = ie.Document
Set tbs = dmt.all.tags("a") 'chercher tous les tags a (hyperlien)'
For i = 0 To tbs.Length - 1
If InStr(tbs(i), ".html") Then 'pour tous les tiers chez Siteweb.com, la forme formule toujours 9 chiffre nb Siren+.html
a = InStr(tbs(i), ".html") 'note la position du .html'
If IsNumeric(Mid(tbs(i), a - 9, 9)) Then 'vérifier les 9 caractères avant .html sont chiffres ou pas'
s1 = Mid(tbs(i), a - 9, 9)
Exit For 'normalement la première recherche google est le bon résultat, on fini cette macro pourvu qu'on trouve le SIREN'
End If
End If
Next
ie.navigate ("https://www.google.fr/?gws_rd=ssl#q=" & "Siteweb.com " & Cells(r, "C") & " " & Cells(r, "Q")) 'ouvrir directement google avec la recherche des tiers'
While ie.ReadyState <> 4 'en attente qu'il soit terminé'
DoEvents
Wend
Set dmt = ie.Document
Set tbs = dmt.all.tags("a") 'chercher tous les tags a (hyperlien)'
For i = 0 To tbs.Length - 1
If InStr(tbs(i), ".html") Then 'pour tous les tiers chez Siteweb.com, la forme formule toujours 9 chiffre nb Siren+.html
a = InStr(tbs(i), ".html") 'note la position du .html'
If IsNumeric(Mid(tbs(i), a - 9, 9)) Then 'vérifier les 9 caractères avant .html sont chiffres ou pas'
s2 = Mid(tbs(i), a - 9, 9) 'si oui, afficher ces 9 chiffres'
Exit For 'normalement la première recherche google est le bon résultat, on fini cette macro pourvu qu'on trouve le SIREN'
End If
End If
Next
If s1 = s2 And s1 <> vbNullString Then
Cells(r, "T") = s1
GoTo a
Else
ie.navigate ("http://www.Siteweb.com/cgi-bin/search?champs=" & Cells(r, "C"))
Do Until ie.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Set dmt = ie.Document
Set tbs = dmt.all.tags("div")
For i = 0 To tbs.Length - 1
If InStr(tbs(i).innerhtml, Cells(r, "R")) > 0 And InStr(tbs(i).innerhtml, ".html") > 0 Then
arr = Split(tbs(i).innerhtml, "<A class")
For j = 0 To UBound(arr)
If InStr(arr(j), Cells(r, "R")) > 0 And InStr(arr(j), ".html") > 0 Then
a = InStr(arr(j), ".html")
If IsNumeric(Mid(arr(j), a - 9, 9)) Then
Cells(r, "T") = Mid(arr(j), a - 9, 9)
GoTo a
End If
End If
Next j
End If
Next i
End If
a: ie.Quit
Set tbs = Nothing
Set dmt = Nothing
Set ie = Nothing
End Sub
Sub recursif()
Application.ScreenUpdating = False
r = Selection.Row
l = Range("A1").CurrentRegion.Rows.Count
For Each c In Range("T" & r & ":T" & l).SpecialCells(xlCellTypeVisible)
c.Select
SIRENCOMPA
Next
Application.ScreenUpdating = True
End Sub