Recherche et clic sur hyperlink
bonjour, j'ai un soucis avec mon code lorsque je fais une recherche sur le TagName cela m'ouvre une nouvelle page Internet explorer pour faire la recherche et le clic sur cette nouvelle page.
Comment pourrais je remédier a ça?
Dim link As Object
Set ie = CreateObject("internetExplorer.Application")
ie.Visible = True
With ie
.navigate ""
Do Until .readyState = 4
Loop
Set elementHTML = ie.document.all("recherche")
elementHTML.Value = Range("A2").Value
Set elementHTML = ie.document.all("rechercheBtn")
elementHTML.Click
Set Alllinks = ie.document.getElementsByTagName("A")
For Each Hyperlink In Alllinks
If Hyperlink.innerText = "NOM" And Hyperlink.className = "strong text-uppercase " Then
Hyperlink.Click
End If
Next Hyperlink
End With<p class="mbn">
<a class="strong text-uppercase " <b>href="/fr/undefined-fI3Tm_ltR0CTK_mCOihB9Q/infos-generales</b>" title="Voir la fiche de UNDEFINED" target="_blank">UNDEFINED</a> Alias URESOTHO DE NOUJI, Cheval Autre Que Pur Sang, Hongre, Bai, 2008
</p>merci
Bonjour,
Voici un premier essai pour capter la nouvelle fenêtre IE au moyen d'une fonction (adaptée d'un code pré-existant) :
Sub Couleur()
Dim link As Object
Set ie = CreateObject("internetExplorer.Application")
with ie
.Visible = True
.navigate ""
Do Until .readyState = 4: Loop
Set elementHTML = .document.all("recherche")
elementHTML.Value = Range("A2").Value
Set elementHTML = .document.all("rechercheBtn")
elementHTML.Click
Set Alllinks = .document.getElementsByTagName("A")
For Each Hyperlink In Alllinks
If Hyperlink.innerText = "NOM" And Hyperlink.className = "strong text-uppercase " Then
Hyperlink.Click
exit for
End If
Next Hyperlink
End With
set ie = CapterNewIE()
'suite du code sur la nouvelle fenêtre
end sub
function CapterNewIE() as Object
with createobject("Shell.Application")
for i = 0 to .windows.count - 1
if .windows.item(i).fullname like "C:\Program Files*Internet*" then
Set CapterNewIE = .Windows.item(i)
end if
next i
end with
end functionCdlt,
bonjour, tout d'abord merci d'avoir répondu a mon message, hors j'arrive toujours au même problème.
Dim link As Object
Set ie = CreateObject("internetExplorer.Application")
With ie
.Visible = True
.navigate ""
Do Until .readyState = 4: Loop
Set elementHTML = .document.all("recherche")
elementHTML.Value = Range("A2").Value
Set elementHTML = .document.all("rechercheBtn")
elementHTML.Click
End With
Set ie = CapterNewIE()
Set Alllinks = ie.document.getElementsByTagName("A")
For Each Hyperlink In Alllinks
If Hyperlink.className = "strong text-uppercase " Then
Hyperlink.Click
Exit For
End If
Next Hyperlink
End Sub
Function CapterNewIE() As Object
With CreateObject("Shell.Application")
For i = 0 To .Windows.Count - 1
If .Windows.Item(i).FullName Like "C:\Program Files*Internet*" Then
Set CapterNewIE = .Windows.Item(i)
End If
Next i
End With
End FunctionIf Hyperlink.className = "strong text-uppercase " Then
Hyperlink.ClickCela m'ouvre le premier élément contenu dans la page visitée au début de la macro.
Hors je souhaite cliquer sur le lien de cette même classe résultant de la recherche précédente.
Set elementHTML = .document.all("recherche")
elementHTML.Value = Range("A2").Value
Set elementHTML = .document.all("rechercheBtn")
elementHTML.ClickJ'espère être assez clair dans l'explication de ce que je recherche.
Merci par avance pour l'aide apportée.
ps: je précise que l'adresse ne change pas lors de la recherche
bonjour,
Personne aurait la solution a mon problème? :(