Connection sur le web avec excel

badbad

XLDnaute Junior
Bonjour,
Même question mais présentée différemment:
Est il possible avec Excel, de se connecter sur une page web et de remplir des champs (toujours les mêmes de type Login et Mot de passe)?
Le site sur lequel je veux me connecter toutes les heures est le suivant: http://merome.net/fourmix/

Merci par avance pour toutes aides.
Cordialement
Alexandre Bessy
 

MichelXld

XLDnaute Barbatruc
bonjour


j'espere que cet exemple pourra t'aider

pour activer les references Microsoft HTML Objects Library et Microsoft Internet Controls :
dans l'editeur de macros
Menu Outils
References
Coches les lignes correspondantes
Cliques sur OK pour valider



Sub piloterPageWeb()
'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 '
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop 'attend la fin du chargement

Set maPageHtml = IE.document
Set Helem = maPageHtml.getElementsByTagName('input')

'(boucle pour lister les objets type 'input' de la page)
'For i = 0 To Helem.Length - 1
'MsgBox Helem(i).getAttribute('name') & ' / ' & Helem(i).getAttribute('value')
'Next i

Helem(0).innerText = 'mon login'
Helem(1).innerText = 'mot de passe'
Helem(2).Click 'simulation clic
End Sub



bonne journée
MichelXld
 

valyno

XLDnaute Nouveau
Re : Connection sur le web avec excel

Bonjour,

Je déterre un vieux sujet ! :)

Voilà, j'ai tenté d'exploiter les quelques lignes de code ci-dessus, mais sans succès.
Première difficulté, lors du copier-coller dans mon projet vba, les lignes suivantes apparaissent en rouge. Quel peut-être le problème ?

Set IE = CreateObject('InternetExplorer.Application')
Set Helem = maPageHtml.getElementsByTagName('input')
Helem(0).innerText = 'mon login'
Helem(1).innerText = 'mot de passe'

J'ai Office 2000 sp3 et Internet Explorer 6.02 sp2

J'ai activé les références citées plus haut...

Merci d'avance pour votre aide !
 

valyno

XLDnaute Nouveau
Re : Connection sur le web avec excel

Bonjour,

Tout d'abord, merci pour la réponse (je viens consulter la réponse un peu tardivement... :p)

Alors, je parviens bien à lancer Internet Explorer sur la bonne page, mais par contre, je n'arrive pas m'identifier.
Je pense que le problème vient de la manière d'identifier les champs à renseigner et de valider l'entrée.

Pour faire simple, je souhaite me connecter sur le site de Boursorama pour télécharger le cours de clôture des valeurs du SBF120, via une requête.
Le problème est que pour pouvoir télécharger ce fichier, il faut être enregistré.
Ma macro tourne correctement lorsque j'ai par ailleurs une fenêtre IE6 connectée sur Boursorama.
J'ai donc besoin de gérer la connection au site avant de lancer ma macro.

Voici le fichier contenant la macro de connection, si une bonne âme pouvait se pencher dessus et apporter les modifications qui s'imposent, je lui vouerai une reconnaissance éternelle :)

Merci d'avance !!!
 

Pièces jointes

  • connection site web-forum.xls
    28 KB · Affichages: 246
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Connection sur le web avec excel

Bonsoir

EDITION:
Dans la FAQ du site de Boursorama, il est indiqué l'utilisation d'un clavier virtuel pour se connecter.

Ne serait-ce pas la la source du problème.



message édité

car erreur de lecture.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Connection sur le web avec excel

Re


A essayer en adaptant le code

(voir le code source HTML du site boursorama
et adapter le nom des champs)

Code:
Public Sub SecureLogin() 
    'auteur: Norie 
    Const strURL_c As String = "ici mettre l'URL du site"
    Const strUsr_c As String = "myUserID" 'this is where i set my UserID
    Const strPwd_c As String = "myPassword" 'this is where i set my password
     
     
    Dim objIE As SHDocVw.InternetExplorer 
    Dim ieDoc As MSHTML.HTMLDocument 
    Dim tbxPwdFld As MSHTML.HTMLInputElement 
    Dim tbxUsrFld As MSHTML.HTMLInputElement 
    Dim btnSubmit As MSHTML.HTMLInputElement 
     'Create Internet Explorer Object
    Set objIE = New SHDocVw.InternetExplorer 
     'Navigate the URL
    objIE.Navigate strURL_c 
     'Wait for page to load
     
    Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop 
         'Get document object
        Set ieDoc = objIE.document 
         
         'Get username/password fields
        objIE.Visible = True 
         
        Set frm = ieDoc.frames(0).document.forms 
         'ici mettre le nom correct des champs
        Set tbxUsrFld = frm(0).all.Item("txtUserId") 
        Set tbxPwdFld = frm(0).all.Item("txtPassword") 
        Set btnSubmit = frm(0).all.Item("submit") 
         
         'Fill Fields
        tbxUsrFld.Value = strUsr_c 
        tbxPwdFld.Value = strPwd_c 
         
         'submit form
        frm(0).submit 
         
         'Wait for page to load
        Do Until objIE.ReadyState = READYSTATE_COMPLETE: Loop 
             
        End Sub

PS: je suppose que cela doit être aussi vrai ici.
'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
 
Dernière édition:

valyno

XLDnaute Nouveau
Re : Connection sur le web avec excel

Merci !

Je vais essayer ca aujourd'hui !

Pour info, sur Bourso, le clavier virtuel ne s'active que pour les clients Bourso, i.e ceux qui ont un compte bancaire/trading.
Pour les simples membres, la saisie se fait fait via le formulaire sur la page web.

La page web reconnait le type de compte par l'intermédiaire de l'identifiant qui est saisit (soit un identifiant libre, choisi par le membre, soit un identifiant imposé pour les clients) et affiche automatiquement ou non le clavier virtuel.
 

valyno

XLDnaute Nouveau
Re : Connection sur le web avec excel

Hop,

Je viens de faire les essais, mais il semble que je bute sur le formulaire de la page web.
En étudiant le code source de la page de connection Bourso, j'ai cru comprendre que les champs de formulaire s'appelaient "login" et "password". Mais comme je n'y connais rien au codage php, cela serait à vérifier (je recopie ci-dessous le bloc formulaire de la page boursorama...)
La commande de debogage bloque sur
Code:
[COLOR="Red"]Set frm = ieDoc.frames(0).document.forms [/COLOR]
         'ici mettre le nom correct des champs
        Set tbxUsrFld = frm(0).all.Item("login") 
        Set tbxPwdFld = frm(0).all.Item("password") 
        Set btnSubmit = frm(0).all.Item("submit2")

Encore merci pour ton aide !!


Code de la page boursorama :
Code:
<!-- BLOC formulaire_log.phtml -->



								<FORM name="Identification" id="Identification" ACTION="/logunique.phtml" METHOD="POST" onSubmit="if(!isLoginClient(this.login.value)) return checkIdentifiant(this.login.value,this.password.value); else { document.Identification_client.login.value = $('login').value; $('bloc_client').style.display = 'block'; $('bloc_defaut').style.display = 'none'; return false; }">
								<INPUT type="Hidden" name="org" value="/index.phtml?">
								<input type="hidden" name="redirect" value="">

								<table width="250" border="0" cellspacing="0" cellpadding="0" style="margin-top:9px;margin-left:11px;margin-right:11px" id="CONTENT Acc&egrave;s Membre">
                                      <tr>
                                        <td style="font-family:Arial, Helvetica, sans-serif;font-size:12px;text-align:justify">Pour plus de s&eacute;curit&eacute;, l'acc&egrave;s &agrave; vos comptes s'effectue d&eacute;sormais en deux &eacute;tapes :</td>
                                      </tr>
                                      <tr>

                                        <td style="height:7px"></td>
                                      </tr>
                                      <tr>
                                        <td style="font-family:Arial, Helvetica, sans-serif;font-size:12px;text-align:justify">&Eacute;tape 1 : identifiez vous</td>
                                      </tr>
                                      <tr>
                                        <td style="height:7px"></td>
                                      </tr>

                                      <tr>
                                        <td style="font-family:Arial, Helvetica, sans-serif;font-size:12px;text-align:justify">&Eacute;tape 2 : saisissez votre mot de passe</td>
                                      </tr>
                                      <tr>
                                        <td style="height:14px;text-align:center">

											<div id="bloc_erreur_defaut">
																																															</div>

										</td>
                                      </tr>
                                      <tr>
                                        <td>
										<table width="100%" border="0" cellpadding="2" cellspacing="0">
												<tr class="p8">
													<td style="width: 100px; font-family: Arial,Helvetica,sans-serif; font-size: 12px; color: rgb(6, 56, 155); font-weight: bold; text-align: left;">Identifiant :</td>
													<td align="left" width="66%"><INPUT tabindex="100" autocomplete="off" maxLength="11" size="13" name="login" id="login" class="frame" style="width: 80px; height: 18px; font-size: 13px; text-align: center;" value="" onfocus="this.autocomplete='off';" onchange="$('bloc_erreur_defaut').style.display = 'none'; $('bloc_erreur_client').style.display = 'none'; if($('login').value.search(/^[0-9]+$/) <= -1) { $('blocmemo').style.display='block'; $('besoinaide').style.display='block'; } else { $('blocmemo').style.display='none'; $('besoinaide').style.display='none'; }"></td>

												</tr>
												<tr class="p8" >
													<td style="width: 100px; font-family: Arial,Helvetica,sans-serif; font-size: 12px; color: rgb(6, 56, 155); font-weight: bold; text-align: left;" nowrap>Mot de passe :</td>
													<td align="left"><INPUT tabindex="101" autocomplete="off" type="password" maxLength="11" size="13" name="password" id="password" value="" class="frame"  style="width: 80px; height: 18px; font-size: 13px; text-align: center;" onfocus="this.autocomplete='off'; document.Identification_client.login.value = $('login').value; if(isLoginClient($('login').value)) { $('bloc_client').style.display = 'block'; $('bloc_defaut').style.display = 'none';} else { $('bloc_client').style.display = 'none'; $('bloc_defaut').style.display = 'block';} if($('login').value.search(/^[0-9]+$/) <= -1) { $('blocmemo').style.display='block'; $('besoinaide').style.display='block'; } else { $('blocmemo').style.display='none'; $('besoinaide').style.display='none'; }"></td>
												</tr>
												<tr>
													<td>&nbsp;</td>
													<td align="left"><input name="submit2" tabindex="103" type="submit" style=" width:85px ; height:22px ; border:none ; background-color:#06389B ; color:#FFFFFF ; text-decoration:underline ; font-family:Arial, Helvetica, sans-serif ; font-size:13px ; font-weight:bold" value="Valider" onfocus=""></td>

												</tr>
												<tr>
													<td align="center" colspan="2"><span id="blocmemo" style="display: none;"><INPUT tabindex="102" type="checkbox" value="oui" name="memo" class="but" style="border:0px;" onfocus="this.autocomplete='off'; document.Identification_client.login.value = $('login').value; if(isLoginClient($('login').value)) { $('bloc_client').style.display = 'block'; $('bloc_defaut').style.display = 'none';} else { $('bloc_client').style.display = 'none'; $('bloc_defaut').style.display = 'block';}">&nbsp;&nbsp;Mémorisez compte et mot de passe</span></td>
												</tr>
											</table>
										</td>
                                      </tr>
									  
                                      <tr>

                                        <td style="height:10px"></td>
                                      </tr>
                                      <tr>
                                        <td style="height:10px"></td>
                                      </tr>
                                       <tr>
                                        <td style="height:50px">

										<table width="100%" border="0" cellspacing="0" cellpadding="0">

                                            <tr>
                                              <td style="font-family:Arial, Helvetica, sans-serif;font-size:11px;text-align:left"><a href="javascript:popup('/aide/faq_connexion.phtml','nom',510,600);" id="besoinaide">FAQ</a></td>
                                             <td style="font-family:Arial, Helvetica, sans-serif;font-size:11px;text-align:right"><a href="/aide/motdepasse_email.phtml">Mot de passe oubli&eacute; ?</a></td>

                                            </tr>
                                        </table>

										</td>

                                      </tr>
                                      <tr>
                                        <td style="height:170px"></td>
                                      </tr>
                                      <tr>
                                        <td style="font-size:0px;vertical-align:baseline"><hr style="width:100%;height:3px" /></td>
                                      </tr>
                                      <tr>
                                        <td style="height:10px"></td>

                                      </tr>
                                      <tr>
                                        <td>

										<table width="100%" border="0" cellspacing="0" cellpadding="0" id="VERISIGN">
                                            <tr>
                                              <td style="font-family:Arial, Helvetica, sans-serif;font-size:10px;text-align:right;padding-right:5px">Notre site a choisi<br />
                                                VeriSign <a href="http://www.verisign.fr/products-services/security-services/ssl/ssl-information-center/" target="_blank" title="&Agrave; propos des certificats SSL">SSL</a> pour la s&eacute;curit&eacute;<br />

                                                et la confidentialit&eacute;<br />
                                                des communications</td>
                                              <td style=" width:100px"><a href="javascript:popup('https://seal.verisign.com/splash?form_file=fdf/splash.fdf&dn=WWW.BOURSORAMA.COM&lang=fr','VeriSign',560,500)"><img src="https://www.boursorama.com/i/verisignseal.gif" alt="" border="0" width="100" height="72" align="right"></td>
                                            </tr>
                                        </table>

										</td>
                                      </tr>

                                  	</table>
								</form>



						<!-- FIN BLOC formulaire_log.phtml -->
 

Staple1600

XLDnaute Barbatruc
Re : Connection sur le web avec excel

Bonsoir


Une autre procédure à tester
(j'ai essayé d'adapter le nom des champs, en gras)

A toi de tester

Code:
Sub web_login()
'key: submit on Internet Explorer Form
'auteur: Cjeh
'(mrexcel message board)
 Dim ie As Object
On Error GoTo error_h
Set ie = CreateObject("InternetExplorer.Application")
    With ie
'ici l'adresse du site
        .Navigate "https://www.boursorama.com/connexion.phtml?org=/index.phtml?"
            Do While .Busy: DoEvents: Loop
            Do While .ReadyState <> 4: DoEvents: Loop
        .Visible = True

        With .Document.forms("[B]Identification[/B]")
             .[B]login[/B].value="ton_login"
             .[B]password[/B].Value = "ton password"
             .[B]submit2[/B].Click 
        End With
        .Visible = True
    End With
Set ie = Nothing
Exit Sub
error_h: MsgBox "Unexpected Error."
ie.Quit
Set ie = Nothing
End Sub
EDITION: apparamment cela fonctionne
Car avec le code VBA tel quel
Je me retrouve sur la page d'erreur : identifiant ou mot de passe incorrect
https://www.boursorama.com/connexion.phtml?&err=1

(PS: les références précédemment cités ayant été activées dans le classeur ou j'ai testé le code)

En attendant que tu confirmes que cela fonctionne avec login et password corrects.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed