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 :

Récupérer des infos d'une page Web avec identifiant et mdp en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Points : 105
    Points
    105
    Par défaut Récupérer des infos d'une page Web avec identifiant et mdp en VBA
    Bonjour,

    j'aimerais ouvrir une page internet de la forme : http://adresse/page?p=12&s=2

    J'arrive à rentrer le login et mdp et accéder à la page en question mais je n'arrive pas à récupérer les données sur cette page.
    Je cible toujours ma page d'accueil.
    ça ne prend pas en compte ce qu'il y a après "page" dans l'URL je pense.

    Voici mon code actuel :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub connexionsite()
     
        Dim IE As InternetExplorer
        Dim IEDoc As Object
        Dim DOCelement As Object
     
        Set IE = New InternetExplorer
        IE.Visible = False
        IE.Navigate ("http://adresse/login")
     
         ' attente de fin de chargement
        Do Until IE.readyState = 4
            DoEvents
        Loop
     
    '    Set IEDoc = IE.document
     
        'login
         Set DOCelement = IEDoc.getElementsByName("username").Item
         DOCelement.Value = "Mon_Username"
     
        'password
         Set DOCelement = IEDoc.getElementsByName("password").Item
         DOCelement.Value = "Mon_MDP"
         DOCelement.Select
     
        'connexion
         Set DOCelement = IEDoc.forms(0)
         DOCelement.submit
     
        Set IE = New InternetExplorer
        IE.Visible = True
        IE.Navigate ("http://adresse/page?p=12&s=2")
        Set IEDoc = IE.document
        test = IEDoc.DocumentElement.innerText
     
        'Chercher le texte
        Set HtmlElementStandard = IE2Doc.all(9)
        LeTexteExtrait = HtmlElementStandard.innerText
        'Affichage du texte
        MsgBox LeTexteExtrait, Title:="Le texte extrait de la page"
     
    End Sub

  2. #2
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour sebfch,

    Tu dois rester sur ta page de départ plutôt que d'en ouvrir une nouvelle.

    De la même façon que tu trouves les champs pour y indiquer user et pass, trouve le bouton valider et .Click


    Voila un exemple que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Set IEDoc = IE.document
            Set Input_collection = IEDoc.getElementsByTagName("input")
            Set Button_collection = IEDoc.getElementsByTagName("button")
                Input_collection("pass").Value = mdp
                Input_collection("login").Value = Environ("username")
                For Each vBouton In Button_collection
                    If vBouton.className = "rounded-button" Then
                        vBouton.Click: Exit For
                    End If
                Next
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim IE As New InternetExplorer
        Dim IEDoc As HTMLDocument
        Dim Button_collection As IHTMLElementCollection
        Dim Input_collection As IHTMLElementCollection
        Dim vBouton As HTMLButtonElement
        Dim mdp$
    J'utilise une boucle pour trouver le bouton car il n'a pas d'identifiant sur la page web.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Points : 105
    Points
    105
    Par défaut
    Merci antonysansh, ta méthode est simple et efficace !
    par contre j'ai maintenant un bouton sans name j'ai juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button tab="HISTORIQUE">Historique</button>
    je ne sais pas comment cliquer dessus...

  4. #4
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour sebfch,

    Tu peux voir dans mon exemple que je crée une collection de bouton :
    Set Button_collection = IEDoc.getElementsByTagName("button")

    en suite avec une variable : Dim vBouton As HTMLButtonElement
    je boucle sur tous les boutons jusqu'à trouver le bon, tu dois juste trouver la bonne propriété a tester.

Discussions similaires

  1. [RegEx] Récupérer des infos d'une page web
    Par Chgro dans le forum Langage
    Réponses: 9
    Dernier message: 20/03/2007, 07h44
  2. récupérer des infos d'une page web (TWebBrowser)
    Par LotfiB dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/01/2007, 21h59
  3. Obtenir des infos sur une page web en ligne
    Par Logan_Cale dans le forum Web & réseau
    Réponses: 1
    Dernier message: 20/08/2005, 15h36

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