Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Interaction Excel et navigateur

17 réponses
Avatar
LeBuss
Bonjour à tous,

Est il possible de remplir un champ d'une page web à partir d'une
cellule d'excel ?

Je m'explique.
Je dois vérifier des comptes utilisateurs sur un site web. Pour
m'identifier il faut renseigner l'email et le mot de passe.
Tous les comptes que j'ai à vérifier sont dans un fichier Excel.
Je souhaitais avoir une macro qui me permette de faire un copier de la
cellule active et un coller dans le champ Email du navigateur.
mais la, ce n'est plus de mon niveau.

Merci pour vos idées

Bonne journée à vous

LeBuss

10 réponses

1 2
Avatar
MichD
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------
Avatar
Gloops
MichD a écrit, le 08/04/2011 16:27 :
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------




Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu v ite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bou ton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de regarde r :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures ,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagNam e
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document cha nge
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.
Avatar
MichD
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion : inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------




Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.
Avatar
isabelle
salutatous,

par exemple pour lister les objets de la page google,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence 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.ca/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-10 06:39, MichD a écrit :
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion : inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :

Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------




Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.


Avatar
MichD
Merci Isabelle.



MichD
--------------------------------------------
"isabelle" a écrit dans le message de groupe de discussion : insit3$hpf$

salutatous,

par exemple pour lister les objets de la page google,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence 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.ca/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-10 06:39, MichD a écrit :
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion : inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :

Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------




Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.


Avatar
LeBuss
Bonsoir Isabelle,

c'est super, mais souhaite écrire dans le champ de recherche de goolge,
es ce possible ??

Grand merci d'avance

Christophe



Le 10/04/2011 17:38, isabelle a écrit :
salutatous,

par exemple pour lister les objets de la page google,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence 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.ca/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-10 06:39, MichD a écrit :
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés
sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion :
inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------



Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de
regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.

Avatar
MichD
Bonjour,

Une façon de faire :


'--------------------------------------------
Sub test()
Dim Source As String
Dim MonLien As String

Source = "locomotive" 'Expression recherchée
'-----------------------
MonLien = "http://www.google.com/"

ThisWorkbook.FollowHyperlink MonLien, , True
DoEvents
Application.Wait Now() + TimeValue("00:00:01")
SendKeys Source & "~"
End Sub
'--------------------------------------------


MichD
--------------------------------------------
"LeBuss" a écrit dans le message de groupe de discussion : 4da3758c$0$7926$

Bonsoir Isabelle,

c'est super, mais souhaite écrire dans le champ de recherche de goolge,
es ce possible ??

Grand merci d'avance

Christophe



Le 10/04/2011 17:38, isabelle a écrit :
salutatous,

par exemple pour lister les objets de la page google,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence 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.ca/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-10 06:39, MichD a écrit :
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés
sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion :
inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------



Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de
regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.

Avatar
Gloops
LeBuss a écrit, le 08/04/2011 09:20 :
Bonjour à tous,

Est il possible de remplir un champ d'une page web à partir d'une
cellule d'excel ?

Je m'explique.
Je dois vérifier des comptes utilisateurs sur un site web. Pour
m'identifier il faut renseigner l'email et le mot de passe.
Tous les comptes que j'ai à vérifier sont dans un fichier Excel.
Je souhaitais avoir une macro qui me permette de faire un copier de la
cellule active et un coller dans le champ Email du navigateur.
mais la, ce n'est plus de mon niveau.

Merci pour vos idées

Bonne journée à vous

LeBuss




Comme promis je viens de jeter un coup d'œil, finalement il n'y a pas
besoin de tout réécrire en cas de changement de structure, du moment que
les contrôles intéressants ne changent pas de nom.

Le programme est écrit en C#, mais GetElementById est un mot-clé de D OM,
auquel on peut aussi faire appel en VB. C'est pour InvokeMember que, je
crois, il va falloir adapter. Submit comme dit MichD me paraît bien
crédible, mais je n'ai pas vérifié non plus, bien potasser la doc
VBScript et DOM.

Bien entendu, avant d'écrire ça, j'ai regardé dans la source de la page
de connexion du webmail, pour voir comment s'appellent les zones de
saisie où on tape son adresse mail et son mot de passe.

webBrowser1.Document.GetElementById("txtUserName").InnerText = strNomBo ite;

webBrowser1.Document.GetElementById("txtPassword").InnerText =
DecryptString(strMDP);

if (strMDP != null)
{

webBrowser1.Document.GetElementById("btnEnterClick").InvokeMember("Click" );
}



A noter que l'instruction GetElementsByTagName retourne un tableau avec
tous les contrôles d'un certain type, comme input. Si c'est le troisiè me
qu'on vise, on utilisera GetElementsByTagName("INPUT")(2)
en effet les indices commencent à 0. Là où ça se complique c'est que
c'est à considérer de manière hiérarchique.

A présent il reste à faire le point sur ce que tu vas être en mesur e de
faire avec tout ça, en fonction de la structure de la page à traiter.=
Avatar
Gloops
LeBuss a écrit, le 11/04/2011 23:41 :
Bonsoir Isabelle,

c'est super, mais souhaite écrire dans le champ de recherche de goolg e,
es ce possible ??

Grand merci d'avance

Christophe



Bonsoir,

C'est faisable, mais il y a plus simple. A ce que je comprends on part
d'Excel ? Excel a des contrôles de saisie, où on peut entrer l'argume nt
de recherche (à moins qu'il soit carrément dans une cellule), et une
fois que c'est fait on peut appeler le navigateur (ou le contrôle
WebBrowser -tiens je ne l'ai jamais essayé sous Excel celui-là)

strURL = "http://www.google.fr/search?q=" + strArgument
Avatar
MichD
Merci à Gloops,

ceci est plus performant.

'------------------------------
Sub test()
Dim MonLien As String, strArgument As String
strArgument = "Machine" 'Expression recherchée
MonLien = "http://www.google.fr/search?q=" + strArgument
ThisWorkbook.FollowHyperlink MonLien, , True
End Sub
'------------------------------

MichD
--------------------------------------------
"MichD" a écrit dans le message de groupe de discussion : invtrn$kfr$

Bonjour,

Une façon de faire :


'--------------------------------------------
Sub test()
Dim Source As String
Dim MonLien As String

Source = "locomotive" 'Expression recherchée
'-----------------------
MonLien = "http://www.google.com/"

ThisWorkbook.FollowHyperlink MonLien, , True
DoEvents
Application.Wait Now() + TimeValue("00:00:01")
SendKeys Source & "~"
End Sub
'--------------------------------------------


MichD
--------------------------------------------
"LeBuss" a écrit dans le message de groupe de discussion : 4da3758c$0$7926$

Bonsoir Isabelle,

c'est super, mais souhaite écrire dans le champ de recherche de goolge,
es ce possible ??

Grand merci d'avance

Christophe



Le 10/04/2011 17:38, isabelle a écrit :
salutatous,

par exemple pour lister les objets de la page google,

Sub ListeDesObjectsPageWeb()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence 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.ca/"
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName("input")

For i = 0 To Helem.Length - 1
Range("A" & i + 1) = Helem(i).getAttribute("name")
Range("B" & i + 1) = Helem(i).getAttribute("value")
Next
End Sub

isabelle
------------------------------------------------------------------

Le 2011-04-10 06:39, MichD a écrit :
Si tu as une solution avec "GetElementsByTagName" qui répond
à la question du demandeur, je serai intéressé aussi de voir la solution.

La solution que j'ai proposée est la combinaison d'éléments trouvés
sur le Net.
Comme dit auparavant, elle n'a pas été testée... mais comme les solutions
proposées pour ce fil étaient rares...

Mes connaissances du modèle objet "InternetExplorer" sont très limitées!



MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion :
inqr9u$mqb$

MichD a écrit, le 08/04/2011 16:27 :
Bonjour,

As-tu essayé quelque chose comme ceci :

Je ne suis pas en mesure de tester cette procédure.
J'espère si cela fonctionne et que tu trouves, tu
viendras nous dire comme tu as fait cela.

'---------------------------------------------------
Sub Copier_Data_Dans_Fichier_Internet()

Dim Wk As Workbook
Dim AdresseURL As String

With CreateObject("InternetExplorer.Application")
.Navigate "http://Adresse du site internet"
Do Until .ReadyState = 4
DoEvents
Loop
DoEvents
With .document
.items("UserName") = "MichD"
.items("PassWord") = "MichD"
.items("UserNameSend").submit
End With
End With

AdresseURL = "http://Chemin/files/NomFichier.xls"
Set Wk = Workbooks.Open(AdresseURL)

'Le classeur que tu viens d'ouvrir = _
ton classeur où est la donnée à copier
Wk.Worksheets("NomFeuilleInternet").Range("A1") = _
Workbooks("Source").Worksheets("NomDeLaFeuille").Range("A25")

'Fermeture du classeur Web
Wk.Close True

End Sub
'---------------------------------------------------


MichD
--------------------------------------------



Bonjour,

C'est bien, ça, dans le principe, mais si la question est posée c'est
que considérer la suite comme évidence est peut-être aller un peu vite
en besogne.

Le code indiqué part du principe que le document comporte une zone de
saisie nommée UserName, une zone de saisie nommée PassWord, et un bouton
nommé UserNameSend, qui va chercher le nom dans UserName, le mot de
passe dans PassWord, et effectue la connexion avec ces éléments.

J'ai goupillé un truc de ce style, mais je vais dormir avant de
regarder :)

Si le document est aux normes XHTML, ça peut valoir le coup de
s'intéresser à XPATH. Il faut prévoir d'y passer un paquet d'heures,
s'embêter plus qu'en cheminant via les instructions GetElementsByTagName
(que j'ai d'ailleurs utilisées dans l'exemple que j'ai développé), mais
une fois qu'on est opérationnel, le jour où le format du document change
on corrige le chemin en moins de deux.

Enfin ... Je dis ça pour quelqu'un susceptible de s'intéresser un
certain nombre de fois à la question. Sinon, certes,
GetElementsByTagName risque bien de faire l'affaire.

1 2