Contrôle VB internet explorer besoin d'aide... urgent...
ArRkHaOn
Messages postés80Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention14 octobre 2005
-
6 mai 2005 à 21:48
cs_fred29
Messages postés1Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention27 juin 2008
-
27 juin 2008 à 23:39
Il y a un controle VB qui permet de soumettre un formulaire sur internet explorer du style:
With ie
.Visible = True
.IENavigate "http://www.google.fr/"
.FormFillField "q", "vbfrance"
.FormClickButton "btnG"
End With
il ouvre internet explorer rempli "vbfrance" dans le textfield de google et click auto sur le boutton "btnG" de google pour soumettre la recherche
Ca fonction formidablement bien mais voici le problème:
Comment puis je utiliser cette méthode si le boutton n'a pas de nom ?
celui de google s'appel "btnG" donc ça va mais sur d'autres sites certains bouttons n'ont aucun nom...
Auriez-vous une solution à ça ? je vous remercis d'avance...
michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 7 mai 2005 à 07:57
bonjour
ton code semble interessant , mais je n'ai pas reussi à le faire fonctionner : pourrais tu le placer ici en entier et preciser les bibliotheques que tu utilises
sinon , si tu ne connais pas le nom des objets , tu peux aussi piloter les pages Web à partir de leurs numeros d'index
cette premiere macro boucle sur tous les objets type "input" de la page , en indiquant l'index de chacun
Sub piloterPageWebV01()
'michelxld le 12.11.2004
'activer la reference Microsoft HTML Objects Library
'activer la refenrce Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
On Error Resume Next
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "http://www.google.fr/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop 'attendre la fin du chargement
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")
'
'*******************************
'(boucle pour identifier l'index des objets "input" dans la page)
For i = 0 To Helem.Length - 1
MsgBox Helem(i).getAttribute("name") & " / " & Helem(i).getAttribute("value")
Helem.Item(i).innerText = "index objet : " & i
Next i
'*******************************
End Sub
une fois que tu connais les index , tu peux tester cette deuxieme procedure , qui permet de completer les champs de la page Web et simuler le clic sur le bouton
Sub piloterPageWebV02()
'michelxld le 12.11.2004
'activer la reference Microsoft HTML Objects Library
'activer la refenrce Microsoft Internet Controls
Dim i As Integer
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "http://www.google.fr/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop 'attendre la fin du chargement
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")
'
'quand tu connais l'index des objets tu peux utiliser le code comme ci dessous
'pour remplir le champ
Helem.Item(1).innerText = "vbfrance"
'simule le clic sur le bouton "Recherche Google"
Helem(2).Click