IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Connexion à un site avec login [FAQ]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 172
    Points : 107
    Points
    107
    Par défaut Connexion à un site avec login
    Bonjour,

    Je souhaiterais aller chercher des données sur un site, mais les données de la page sont sur une page où il faut s'être identifié pour pouvoir y aller.

    le code html est:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	<form id="login" action="http://www.monsite.com" method="post">
    	<input type="text" name="login" id="login" value="Nom d'utilisateur" class="login"  />
    	<input type="password" name="password" id="password" autocomplete="off"  class="password"  />
    	<input type="submit" name="connection" id="ok" class="ok" value="" />

    et en fait je ne sais pas comment "envoyer" mon login et mot de passe en VBA pour pouvoir accéder à la page voulue.

    Si vous avez des pistes, liens vers tutos, exemples persos, idées ..
    je vous en remercie par avance.

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il n'est (à ma connaissance) pas possible de remplir les champs d'un formulaire d'une page WEB si ce formulaire utilise la méthode POST.

    Par contre, il est possible de "simuler" un formulaire.
    Je dois faire un peu de recherches pour retrouver mes essais à ce sujet.

    Edit: Info supplémentaire:
    Je me sers de cURL pour connaître la syntaxe à utiliser.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 172
    Points : 107
    Points
    107
    Par défaut
    ok Alain.

    Merci pour le lien et ton intervention.

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Mes essais avaient trait à l'envoi d'un fichier sur un site par une méthode POST au travers d'un proxy nécessitant une authentification NTLM.

    Dans ton cas, que cherches-tu à faire?
    Ce n'est pas tout de s'identifier, il y a bien un but derrière.

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 172
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par AlainTech Voir le message
    Dans ton cas, que cherches-tu à faire?
    Ce n'est pas tout de s'identifier, il y a bien un but derrière.
    Je souhaiterais aller chercher des données sur un site, mais les données de la page sont sur une page où il faut s'être identifié pour pouvoir y aller.
    j'ai peut-être pas été assez précis.
    Il s'agit simplement de données (des chiffres) dans un tableau .

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 150
    Points
    20 150
    Par défaut
    bonsoir

    un exemple pour importer le contenu d'un tableau html:

    http://www.developpez.net/forums/sho...d.php?t=439904

    la connection fonctionne sur le même principe. tu trouveras des exemples en utilisant le moteur de recherche du forum.


    bonne soirée
    michel

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 172
    Points : 107
    Points
    107
    Par défaut
    Merci pour ton indication.

    En fait j'avais déjà une solution pour aller chercher des données, mais celle-là est plus propre, donc ça va me servir.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 49
    Points : 39
    Points
    39
    Par défaut
    Bonjour ,

    Je cherche exactement à extraire les mêmes données que toi (du site ze...), en programmation java.

    Pour un autre site similaire (que tu dois connaître) , j'avais réussi à rester dans la même session en utilisant la classe HTTPClient du projet Jakarta et l'extraction a fonctionné sans problème.

    Malheureusement, ça n'a pas marché avec ton site mais je pense qu'il suffirait de peu de choses pour que ça marche.

    Mais je n'arrive pas à comprendre le pourquoi du comment ...

    Je n'ai pas vraiment apporté de solution à notre problème mais je mets toujours ci-dessous la portion du code source du site en question et de mon application java au cas où quelqu'un pourrait nous expliquer pourquoi ça ne marche pas avec ton site.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    </script>	</div>
    	<!-- /blocLogo -->
    	<!-- Authentification -->
     
    	<div id="authentification">
     
     
     
    <form method="post" action="/fr/cookieuser/login">
    	<table summary="" cellspacing="0" cellpadding="0" border="0">
    		<tr>
    			<td colspan="2">
    				<img src="/design/p_t_site/medias/img/commun/votre-compte.gif" alt="Votre Compte" /><br />
    			</td>
    		</tr>
    		<tr>
     
    			<td style="text-align:right;">Email : </td>
    			<td><input class="txt" type="text" size="20" name="Login" id="id1" value="" tabindex="1" /></td>
    		</tr>
    		<tr>
    			<td style="text-align:right;">Mot de passe : </td>
    			<td><input class="txt" type="password" size="20" name="Password" id="id2" value="" tabindex="2" /></td>
    		</tr>
    		<tr>
     
    			<td colspan="2">
    				<input class="login_ok" type="submit" name="LoginButton" value="OK" tabindex="4" />&nbsp;&nbsp;<input type="checkbox" tabindex="3" name="Cookie"/>Mémoriser | <a href="/fr/user/forgotpassword">Oublié ?</a><br />
    			</td>
    		</tr>
    	</table>
    </form>	</div>
    	<!-- /Authentification -->
    </div>

    code java

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    import org.apache.commons.httpclient.*;
    import org.apache.commons.httpclient.methods.*;
     
    public class Connection
    {
        public static String setConnection()
        {
    	HttpClient client = new HttpClient();
     
    	PostMethod authpost = new PostMethod("http://www.hostname.com/fr/user/login");
    	NameValuePair login = new NameValuePair("Login","myadressemail@laposte.net");
    	NameValuePair password = new NameValuePair("Password", "mypassword");
     
    	authpost.setRequestBody(new NameValuePair[]{ login, password });
     
    	try
    	{
    	    client.executeMethod(authpost);
    	} catch (java.io.IOException e){}
     
    	return(authpost.getResponseHeader("Set-Cookie").getValue());
        }
    }

  9. #9
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    voici un code pour se connecter et s'authentifier sur un site (pas le moindre )

    (ici avec la référence à Microsoft Internet Controls)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub connexion()
     
        Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.Visible = True
        ie.Navigate ("http://www.developpez.net/forums")
     
         ' attente de fin de chargement
        Do Until ie.ReadyState = 4
            DoEvents
        Loop
     
        Set IEdoc = ie.Document
     
        'login
         Set DOCelement = IEdoc.getElementsByName("vb_login_username").Item
         DOCelement.Value = "cafeine"
     
        'password
         Set DOCelement = IEdoc.getElementsByName("vb_login_password").Item
         DOCelement.Value = "etpuisquoiencore?turêves?"
         DOCelement.Select
     
        'connexion
         Set DOCelement = IEdoc.Forms(0)
         DOCelement.submit
     
    End Sub

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 49
    Points : 39
    Points
    39
    Par défaut en java svp
    est-ce que quelqu'un veut bien me traduire ça en langage java car visual basic ne me branche pas trop


  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    le truc c'est que tu es sur le forum VBA Excel ...

    je t'invite à demander aux experts du forum JAVA.

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    474
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 474
    Points : 494
    Points
    494
    Par défaut
    Bonsoir à vous tous
    j'ai testé le code proposé par cafeine, ce que j'ai cherché depuis un bon moment juste une petite question avant d'archivé ce code.
    Quesqu'on doit ajouter pour accéder au sous forum vbaExcel par exemple ?

    Bonne soirée.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 49
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par cafeine Voir le message
    le truc c'est que tu es sur le forum VBA Excel ...

    je t'invite à demander aux experts du forum JAVA.
    Merci cafeine mais ça revient au même si je demande une traduction aux experts du forum JAVA on me répondra "je t'invite à demander aux experts du forum Visual Basic" ...

    J'ai essayé ton code mais ça a calé à la première ligne avec le message suivant

    "Compile error: User-defined type not defined" pour la ligne de code

    Dim ie As InternetExplorer

    j'ai essayé Dim ie As Firefox et ça a donné le même résultat.

    Une petite idée du problème ?

    merci

  14. #14
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Si tu veux du code Java, tu vas sur le forum Java.

    Moi, ça me paraît évident.

    Ici, on connaît le VB(A), pas le Java.

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 49
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par AlainTech Voir le message
    Ici, on connaît le VB(A), pas le Java.
    Alors ... une petite idée sur mon problème avec la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ie As InternetExplorer
    Merci

  16. #16
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par cafeine Voir le message
    (ici avec la référence à Microsoft Internet Controls)
    Bonjour tlm,

    Est-il possible que sur Excel 2000 je n'ai pas cette référence ?
    Ou alors il est grand temps que je passe chez l'oculiste parce que je ne la trouve pas

    Edit : je reviens de chez Atol et......trouvé

  17. #17
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    474
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 474
    Points : 494
    Points
    494
    Par défaut
    j'ai trouvé la réponse. (question bête.)
    remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.navigate ("http://www.developpez.net/forums")
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.navigate ("http://www.developpez.net/forums/forumdisplay.php?f=664")
    et tout bon.

  18. #18
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par lazare Voir le message
    Alors ... une petite idée sur mon problème avec la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim ie As InternetExplorer
    Merci
    Si tu t'es décidé à faire du VBA dans Excel, inspire-toi de ce commentaire:
    Citation Envoyé par cafeine Voir le message
    (ici avec la référence à Microsoft Internet Controls)

  19. #19
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Dans le cas où l'on a cocher une case du style "connexion automatique" ou par exemple comme sur DVP "se souvenir de moi ?", le login et mot de passe sont mémorisés et sont automatiquement complétés lors de l'ouverture du site, ce qui provoque un bug lorsque la macro essaye de réintroduire le login.

    En ajoutant une petite gestion d'erreur on évite ce bug
    Code avec ajout gestion d'erreur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub connexion()
     
        Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.Visible = True
        ie.Navigate ("http://www.developpez.net/forums/forumdisplay.php?f=664")
     
         ' attente de fin de chargement
        Do Until ie.ReadyState = 4
            DoEvents
        Loop
     
        Set IEdoc = ie.Document
     
        'login
         Set DOCelement = IEdoc.getElementsByName("vb_login_username").Item
         On Error GoTo fin '<-- en cas de mémorisation du login et du mdp
         DOCelement.Value = "fring"
     
        'password
         Set DOCelement = IEdoc.getElementsByName("vb_login_password").Item
         DOCelement.Value = "lememequecafeine"
         DOCelement.Select
     
        'connexion
         Set DOCelement = IEdoc.Forms(0)
         DOCelement.submit
     
    fin:
    End Sub

  20. #20
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 172
    Points : 107
    Points
    107
    Par défaut
    Merci Merci Merci !!!

    J'avais perdu espoir et presque abandonné car mon niveau moyen ne me permet pas encore de faire ce genre de code.

    Je vais tester tout ça.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Site avec Login et Mot de passe
    Par marionw84 dans le forum Sécurité
    Réponses: 5
    Dernier message: 19/07/2008, 12h04
  2. site avec login
    Par abakobo dans le forum Dynamique
    Réponses: 0
    Dernier message: 09/05/2008, 22h50
  3. Connexion sur site distant avec un client écrit en PERL ??
    Par Cygnus Saint dans le forum Modules
    Réponses: 2
    Dernier message: 07/03/2006, 11h45
  4. Réponses: 3
    Dernier message: 25/11/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo