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

connection site web avec mdp

12 réponses
Avatar
Tendasque
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans des
champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes suivantes
ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot de
passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans des
champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide



Avatar
Tendasque
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur: si
on a une barre d'outil google par exemple, on rajoute un Tab...Il doit y
avoir un moyen plus direct si on connait le nom du champ, quelqu'un le
connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot de
passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans
des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide







Avatar
Tendasque
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui apparaissent
à la place des champs de saisie, mais là, je n'arrive pas à faire cliquer
l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur: si
on a une barre d'outil google par exemple, on rajoute un Tab...Il doit y
avoir un moyen plus direct si on connait le nom du champ, quelqu'un le
connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot de
passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans
des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide











Avatar
Tendasque
Bon, je bidouille...et je m'en sors en mettant chaque fois l'adresse de la
page:

IE.Navigate ("https://lesite.org/?m=2") 'par exemple; je ne suis pas sûr que
ce soit une façon bien élégante...

ça marche jusqu'à une page où je dois renseigner des formulaires avec des
choix dans boites déroulantes:

par exemple code source:
SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

qui ouvre une nouvelle boite avec d'autres choix...
comment valider les boites avec les choix que j'ai pré-choisis ?
Merci


"Tendasque" a écrit dans le message de news:
eemnB%
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui
apparaissent à la place des champs de saisie, mais là, je n'arrive pas à
faire cliquer l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur:
si on a une barre d'outil google par exemple, on rajoute un Tab...Il doit
y avoir un moyen plus direct si on connait le nom du champ, quelqu'un le
connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot
de passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en
https avec la page d'accueil publique et une connexion par login et mdp
dans des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide















Avatar
Misange
Bonjour

Là je crains que tu ne cherches à aller trop loin avec VBA.
Tout dépend de la méthode de codage de la page pour aller chercher les
infos dans le formulaire. Ce que tu montres ne permet pas de savoir si
les données sont envoyées par put ou get et par conséquent si tu peux ou
non les coder en dur dans l'adresse de la page.
Une fois que tu as entré les bonnes données sur le formulaire et validé,
regarde l'adresse de la page. Si tu vois des trucs du genre
.....php?nom=toto&prenom=zaza
alors reconstruis l'adresse de ta page en incluant les valeur à passer.
Si cela n'apparait pas alors tu es bon pour continuer à bidouiller avec
des tabs... et là je ne sais pas comment t'aider

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bon, je bidouille...et je m'en sors en mettant chaque fois l'adresse de la
page:

IE.Navigate ("https://lesite.org/?m=2") 'par exemple; je ne suis pas sûr que
ce soit une façon bien élégante...

ça marche jusqu'à une page où je dois renseigner des formulaires avec des
choix dans boites déroulantes:

par exemple code source:
SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

qui ouvre une nouvelle boite avec d'autres choix...
comment valider les boites avec les choix que j'ai pré-choisis ?
Merci


"Tendasque" a écrit dans le message de news:
eemnB%
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui
apparaissent à la place des champs de saisie, mais là, je n'arrive pas à
faire cliquer l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur:
si on a une barre d'outil google par exemple, on rajoute un Tab...Il doit
y avoir un moyen plus direct si on connait le nom du champ, quelqu'un le
connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot
de passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en
https avec la page d'accueil publique et une connexion par login et mdp
dans des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide
















Avatar
Tendasque
Merci Migratteuse,

Voila le code source plus complet du formulaire de départ (c'est par Post
apparemment):
<TD alignÎnter valign=top ><FORM NAMEª method=post
action="?mod¬adas&g1=lic"
ENCTYPE="multipart/form-data"

<TABLE width0% border=0 ><TR><TD align=left >

<TABLE border=0>
<TR >
<TD CLASS="TABLEHEAD2" alignÎnter>
<TABLE>
<TR>
<TD CLASS="TABLEHEAD2" >Dernière mise à jour:</TD>
</TR>
<TR>
<TD CLASS="TABLEDATA2">12/12/2007 à 23:02</TD>
</TR>
<TR><td alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_TXT"
SRC="/img/bt/bt_hdownload_txt.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format texte"></td><td
alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_DBF"
SRC="/img/bt/bt_hdownload_dbf.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format dbf"></td></TR>
</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter>
<TABLE>
<TR CLASS="TABLEHEAD1">
<TD colspan=2 alignÎnter CLASS="TABLEHEAD1">Recherche de
licenciés<br> pour votre académie<br>pour dsd034<br> </TD>
</TR>
<TR valign='middle'><TD class="TABLEHEAD2" height% align=right><SELECT
NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT></TD><TD class="TABLEDATA1" align=left >VIDE &nbsp;</TD></TR>

<TR class="TABLEHEAD1" >
<TD alignÎnter >
<FONT COLOR=WHITE>
<A HREF="/index.php?mod¬adas&g1=lic&m=2&sm=2" >
Nouvelle recherche
</A>
</FONT>
</TD>
<TD alignÎnter class="TABLEHEAD1" >
<INPUT TYPE=IMAGE NAME="CMD_SEARCH" src="/img/bt/bt_chercher1.gif"
onMouseOver="MM_nbGroup('over','CMD_SEARCH','/img/bt/bt_chercher2.gif','/img/bt/bt_chercher1.gif');"
onMouseOut=" MM_nbGroup('out'); "

</TD>

</TR>

</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter valign='top'>

</TD>
</TR>
<TR>
<TD colspan=3 alignÎnter >
<TABLE cellspacing=5 CLASS="TABLEHEAD1" border=0 cellpadding=0
width0% >

<TR alignÎnter valign='middle'>
<TD CLASS="TABLEHEAD1" width%% align=right >
&nbsp;
<TD CLASS="TABLEHEAD1" width%% align=left >
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD></TR></TABLE>

</FORM>
</TD>
</TR>
</TABLE>Le premier choix (département par ex) ouvre un 2ème choix (quel
département)"Misange" a écrit dans le message de
news:
Bonjour

Là je crains que tu ne cherches à aller trop loin avec VBA.
Tout dépend de la méthode de codage de la page pour aller chercher les
infos dans le formulaire. Ce que tu montres ne permet pas de savoir si les
données sont envoyées par put ou get et par conséquent si tu peux ou non
les coder en dur dans l'adresse de la page.
Une fois que tu as entré les bonnes données sur le formulaire et validé,
regarde l'adresse de la page. Si tu vois des trucs du genre
.....php?nom=toto&prenom=zaza
alors reconstruis l'adresse de ta page en incluant les valeur à passer.
Si cela n'apparait pas alors tu es bon pour continuer à bidouiller avec
des tabs... et là je ne sais pas comment t'aider

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bon, je bidouille...et je m'en sors en mettant chaque fois l'adresse de
la page:

IE.Navigate ("https://lesite.org/?m=2") 'par exemple; je ne suis pas sûr
que ce soit une façon bien élégante...

ça marche jusqu'à une page où je dois renseigner des formulaires avec des
choix dans boites déroulantes:

par exemple code source:
SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION value="0"
Critère 1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>

<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

qui ouvre une nouvelle boite avec d'autres choix...
comment valider les boites avec les choix que j'ai pré-choisis ?
Merci


"Tendasque" a écrit dans le message de news:
eemnB%
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui
apparaissent à la place des champs de saisie, mais là, je n'arrive pas à
faire cliquer l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur:
si on a une barre d'outil google par exemple, on rajoute un Tab...Il
doit y avoir un moyen plus direct si on connait le nom du champ,
quelqu'un le connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot
de passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en
https avec la page d'accueil publique et une connexion par login et
mdp dans des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide

















Avatar
Misange
Ca semble effectivement être géré par post. Dans ce cas, la page est
appelée normalement en lui passant les paramètres comme je te l'ai
indiqué et il te suffit d'indiquer la bonne adresse de page.

du genre http://www.excelabo.net/moteurs/motsclefs.php?mot=web
(l'adresse est juste là pour te montrer l'agencement des ? et = dans
l'adresse)

C'est bien plus simple que de jouer avec les keycodes je trouve. De plus
si le web master de la page s'amuse à changer quelque chose tu aurais
tout à refaire. Alors que là tu es relativement à l'abri, tant qu'il ne
décide pas de mettre un cryptogramme à recopier à chaque connection...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci Migratteuse,

Voila le code source plus complet du formulaire de départ (c'est par Post
apparemment):
<TD alignÎnter valign=top ><FORM NAMEª method=post
action="?mod¬adas&g1=lic"
ENCTYPE="multipart/form-data"
<TABLE width0% border=0 ><TR><TD align=left >
<TABLE border=0>
<TR >
<TD CLASS="TABLEHEAD2" alignÎnter>
<TABLE>
<TR>
<TD CLASS="TABLEHEAD2" >Dernière mise à jour:</TD>
</TR>
<TR>
<TD CLASS="TABLEDATA2">12/12/2007 à 23:02</TD>
</TR>
<TR><td alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_TXT"
SRC="/img/bt/bt_hdownload_txt.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format texte"></td><td
alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_DBF"
SRC="/img/bt/bt_hdownload_dbf.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format dbf"></td></TR>
</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter>
<TABLE>
<TR CLASS="TABLEHEAD1">
<TD colspan=2 alignÎnter CLASS="TABLEHEAD1">Recherche de
licenciés<br> pour votre académie<br>pour dsd034<br> </TD>
</TR>
<TR valign='middle'><TD class="TABLEHEAD2" height% align=right><SELECT
NAME="SEL0" onchange="this.form.submit();"><OPTION value="0" >Critère
1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT></TD><TD class="TABLEDATA1" align=left >VIDE &nbsp;</TD></TR>

<TR class="TABLEHEAD1" >
<TD alignÎnter >
<FONT COLOR=WHITE>
<A HREF="/index.php?mod¬adas&g1=lic&m=2&sm=2" >
Nouvelle recherche
</A>
</FONT>
</TD>
<TD alignÎnter class="TABLEHEAD1" >
<INPUT TYPE=IMAGE NAME="CMD_SEARCH" src="/img/bt/bt_chercher1.gif"
onMouseOver="MM_nbGroup('over','CMD_SEARCH','/img/bt/bt_chercher2.gif','/img/bt/bt_chercher1.gif');"
onMouseOut=" MM_nbGroup('out'); "

</TD>

</TR>

</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter valign='top'>

</TD>
</TR>
<TR>
<TD colspan=3 alignÎnter >
<TABLE cellspacing=5 CLASS="TABLEHEAD1" border=0 cellpadding=0
width0% >

<TR alignÎnter valign='middle'>
<TD CLASS="TABLEHEAD1" width%% align=right >
&nbsp;
<TD CLASS="TABLEHEAD1" width%% align=left >
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD></TR></TABLE>

</FORM>
</TD>
</TR>
</TABLE>Le premier choix (département par ex) ouvre un 2ème choix (quel
département)"Misange" a écrit dans le message de
news:
Bonjour

Là je crains que tu ne cherches à aller trop loin avec VBA.
Tout dépend de la méthode de codage de la page pour aller chercher les
infos dans le formulaire. Ce que tu montres ne permet pas de savoir si les
données sont envoyées par put ou get et par conséquent si tu peux ou non
les coder en dur dans l'adresse de la page.
Une fois que tu as entré les bonnes données sur le formulaire et validé,
regarde l'adresse de la page. Si tu vois des trucs du genre
.....php?nom=toto&prenom=zaza
alors reconstruis l'adresse de ta page en incluant les valeur à passer.
Si cela n'apparait pas alors tu es bon pour continuer à bidouiller avec
des tabs... et là je ne sais pas comment t'aider

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bon, je bidouille...et je m'en sors en mettant chaque fois l'adresse de
la page:

IE.Navigate ("https://lesite.org/?m=2") 'par exemple; je ne suis pas sûr
que ce soit une façon bien élégante...

ça marche jusqu'à une page où je dois renseigner des formulaires avec des
choix dans boites déroulantes:

par exemple code source:
SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION value="0"
Critère 1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>

<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

qui ouvre une nouvelle boite avec d'autres choix...
comment valider les boites avec les choix que j'ai pré-choisis ?
Merci


"Tendasque" a écrit dans le message de news:
eemnB%
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui
apparaissent à la place des champs de saisie, mais là, je n'arrive pas à
faire cliquer l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du navigateur:
si on a une barre d'outil google par exemple, on rajoute un Tab...Il
doit y avoir un moyen plus direct si on connait le nom du champ,
quelqu'un le connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un mot
de passe. Quand IE est lancé, il faut compter le nombre de tabulations
nécéssaires pour atteindre la première zone à remplir (9 dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en
https avec la page d'accueil publique et une connexion par login et
mdp dans des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide
















Avatar
Tendasque
Ok, merci, je vais approfondir la chose.

"Misange" a écrit dans le message de news:

Ca semble effectivement être géré par post. Dans ce cas, la page est
appelée normalement en lui passant les paramètres comme je te l'ai indiqué
et il te suffit d'indiquer la bonne adresse de page.

du genre http://www.excelabo.net/moteurs/motsclefs.php?mot=web
(l'adresse est juste là pour te montrer l'agencement des ? et = dans
l'adresse)

C'est bien plus simple que de jouer avec les keycodes je trouve. De plus
si le web master de la page s'amuse à changer quelque chose tu aurais tout
à refaire. Alors que là tu es relativement à l'abri, tant qu'il ne décide
pas de mettre un cryptogramme à recopier à chaque connection...

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Merci Migratteuse,

Voila le code source plus complet du formulaire de départ (c'est par Post
apparemment):
<TD alignÎnter valign=top ><FORM NAMEª method=post
action="?mod¬adas&g1=lic"
ENCTYPE="multipart/form-data"
<TABLE width0% border=0 ><TR><TD align=left >
<TABLE border=0>
<TR >
<TD CLASS="TABLEHEAD2" alignÎnter>
<TABLE>
<TR>
<TD CLASS="TABLEHEAD2" >Dernière mise à jour:</TD>
</TR>
<TR>
<TD CLASS="TABLEDATA2">12/12/2007 à 23:02</TD>
</TR>
<TR><td alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_TXT"
SRC="/img/bt/bt_hdownload_txt.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format texte"></td><td
alignÎnter><input TYPE=IMAGE NAME="BOUT_TELE_DBF"
SRC="/img/bt/bt_hdownload_dbf.gif" alt="Télécharger le fichier complet"
title="Télécharger le fichier complet au format dbf"></td></TR>
</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter>
<TABLE>
<TR CLASS="TABLEHEAD1">
<TD colspan=2 alignÎnter CLASS="TABLEHEAD1">Recherche de
licenciés<br> pour votre académie<br>pour dsd034<br> </TD>
</TR>
<TR valign='middle'><TD class="TABLEHEAD2" height%
align=right><SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION
value="0" >Critère 1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>
<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT></TD><TD class="TABLEDATA1" align=left >VIDE &nbsp;</TD></TR>

<TR class="TABLEHEAD1" >
<TD alignÎnter >
<FONT COLOR=WHITE>
<A HREF="/index.php?mod¬adas&g1=lic&m=2&sm=2" >
Nouvelle recherche
</A>
</FONT>
</TD>
<TD alignÎnter class="TABLEHEAD1" >
<INPUT TYPE=IMAGE NAME="CMD_SEARCH" src="/img/bt/bt_chercher1.gif"
onMouseOver="MM_nbGroup('over','CMD_SEARCH','/img/bt/bt_chercher2.gif','/img/bt/bt_chercher1.gif');"
onMouseOut=" MM_nbGroup('out'); "

</TD>

</TR>

</TABLE>
</TD>
<TD CLASS="TABLEHEAD1" alignÎnter valign='top'>

</TD>
</TR>
<TR>
<TD colspan=3 alignÎnter >
<TABLE cellspacing=5 CLASS="TABLEHEAD1" border=0 cellpadding=0
width0% >

<TR alignÎnter valign='middle'>
<TD CLASS="TABLEHEAD1" width%% align=right >
&nbsp;
<TD CLASS="TABLEHEAD1" width%% align=left >
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
<TD CLASS="TABLEHEAD1" width%% alignÎnter>
&nbsp;
</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
</TD></TR></TABLE>

</FORM>
</TD>
</TR>
</TABLE>Le premier choix (département par ex) ouvre un 2ème choix (quel
département)"Misange" a écrit dans le message de
news:
Bonjour

Là je crains que tu ne cherches à aller trop loin avec VBA.
Tout dépend de la méthode de codage de la page pour aller chercher les
infos dans le formulaire. Ce que tu montres ne permet pas de savoir si
les données sont envoyées par put ou get et par conséquent si tu peux ou
non les coder en dur dans l'adresse de la page.
Une fois que tu as entré les bonnes données sur le formulaire et validé,
regarde l'adresse de la page. Si tu vois des trucs du genre
.....php?nom=toto&prenom=zaza
alors reconstruis l'adresse de ta page en incluant les valeur à passer.
Si cela n'apparait pas alors tu es bon pour continuer à bidouiller avec
des tabs... et là je ne sais pas comment t'aider

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bon, je bidouille...et je m'en sors en mettant chaque fois l'adresse de
la page:

IE.Navigate ("https://lesite.org/?m=2") 'par exemple; je ne suis pas
sûr que ce soit une façon bien élégante...

ça marche jusqu'à une page où je dois renseigner des formulaires avec
des choix dans boites déroulantes:

par exemple code source:
SELECT NAME="SEL0" onchange="this.form.submit();"><OPTION value="0"
Critère 1</OPTION>
<OPTION value="1" >N° d'A.S.</OPTION>

<OPTION value="2" >N° licence</OPTION>
<OPTION value="3" >Type d'étab.</OPTION>
<OPTION value="4" >Privé/Public</OPTION>
<OPTION value="5" >Département</OPTION>
<OPTION value="6" >N° de district</OPTION>
<OPTION value="7" >Ville d'étab.</OPTION>
<OPTION value="8" >Sexe</OPTION>
<OPTION value="9" >Nom</OPTION>
<OPTION value="10" >Catégorie</OPTION>
</SELECT>

qui ouvre une nouvelle boite avec d'autres choix...
comment valider les boites avec les choix que j'ai pré-choisis ?
Merci


"Tendasque" a écrit dans le message de news:
eemnB%
J'ai trouvé autre chose qui fonctionne sans les Tabs:

Dim Identifiant As String
Dim Pass As String
Dim htmldata As IHTMLElementCollection

Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate ("https://www.unss.org/")
Do While IE.Busy
Application.Wait (Now + 0.5 / 3600 / 24)
Loop
Application.Wait (Now + 1 / 3600 / 24)
Set maPageHtml = IE.document
Set htmldata = maPageHtml.getElementsByTagName("input")
Identifiant = "XXXX"
Pass = "YYYY"
htmldata(0).innerText = Identifiant
htmldata(1).innerText = Pass

htmldata(2).Click 'validation des identifiants et mdp

Cela fonctionne bien, la page se réactualise avec 4 boutons qui
apparaissent à la place des champs de saisie, mais là, je n'arrive pas
à faire cliquer l'un des boutons; j'ai essayé:

htmldata(1).Click 'ou d'autres numéros sans succès...

Merci de vos lumières



"Tendasque" a écrit dans le message de news:
%2327Wbc$
Merci Daniel, çà fonctionne.
Seul bémol: le nombre de Tabs dépend de la configuration du
navigateur: si on a une barre d'outil google par exemple, on rajoute
un Tab...Il doit y avoir un moyen plus direct si on connait le nom du
champ, quelqu'un le connait-il ?


"Daniel.C" a écrit dans le message de news:
ua2qgn%
Bonjour.
Le code suivant fonctionne pour moi : j'ai deux identifiants et un
mot de passe. Quand IE est lancé, il faut compter le nombre de
tabulations nécéssaires pour atteindre la première zone à remplir (9
dans mon cas)

AppActivate ("Internet Explorer")
Application.Wait Now() + TimeValue("00:00:01")
For i = 1 To 9
SendKeys "{TAB}"
Application.Wait Now() + TimeValue("00:00:01")
Next i
SendKeys "id1{TAB}id2{TAB}motdepasse~"
Cordialement.
Daniel
"Tendasque" a écrit dans le message de news:
%23j$
Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en
https avec la page d'accueil publique et une connexion par login et
mdp dans des champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation
objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide


















Avatar
jipi
Bonjour,

Quand j'essaie la sub j'ai une erreur sur "Getsystemmetrics32" => sub ou
fonction non définie.

De quoi s'agit il ? pb de référence ou autre ?

Merci de vos réponses

jipi


Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans des
champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes suivantes
ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide





Avatar
Fistoulic
Bonjour

Pour passer l'étape getsytem..... il suffit de mettre ça avant la sub :
Declare Function GetSystemMetrics32 Lib "user32" _
Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

J'ai récupéré sur excelabo il y a qques jours une macro d'Isabelle, très
proche de celle-ci, mais que je n'ai pas non plus réussi à adapter.

Pour prendre un exemple, il s'agissait de compléter l'identifiant et le mdp
ici :
http://www.lemoniteur-expert.com/indices-index/
A priori, il suffirait d'envoyer quelques SendKeys "{TAB}" pour arriver au
bon endroit (sic) mais ça ne marche pas... et je me dis (intuitivement)
qu'il doit y avoir des solutions plus "propres", en s'intéressant au html.
Quelqu'un pourrait nous guider ?

F.

"jipi" a écrit
Bonjour,

Quand j'essaie la sub j'ai une erreur sur "Getsystemmetrics32" => sub ou
fonction non définie.

De quoi s'agit il ? pb de référence ou autre ?

Merci de vos réponses

jipi


Bonjour,
Je voudrais aller chercher des infos sur un site; C'est un site en https
avec la page d'accueil publique et une connexion par login et mdp dans
des
champs;
pas de pb pour s'y connecter:

Set IE = CreateObject("InternetExplorer.Application") 'creation objetIE

IE.Navigate ("https://www.unss.org/")

IE.Visible = True: IE.Top = 0: IE.Left = 0
IE.Width = GetSystemMetrics32(0)
IE.Height = GetSystemMetrics32(1)

Do While IE.ReadyState <> 4 'attend que la page soit chargee
DoEvents
Loop

Mais je n'ai pas le focus sur les zones de saisie et les commandes
suivantes
ne sont pas opérantes:

SendKeys ("login")
SendKeys "{TAB}"
SendKeys ("mdp")
SendKeys "{enter}"

Que rajouter pour que login et mdp se placent au bon endroit ?
Merci de votre aide







1 2