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

VBA Discussion :

VBA et Internet explorer


Sujet :

VBA

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 20
    Points
    20
    Par défaut VBA et Internet explorer
    Bonjour,
    Je travaille dans un bureau d'études fluides où je dessine et créer des notes de calculs. Actuellement, je dois déposer des plan sur ce site internet : https://vpnssl.bouygues-construction...12/welcome.cgi

    Le problème c'est qu'il est sécurisé et que je dois donner par 2 fois (une fois sur la page à laquelle vous avez accès et une fois sur celle qu'elle ouvre une fois les mots de passes envoyé) mon nom et mon mot de passe avant d'accédér à l'interface qui me permet d'envoyer mes plans... alors j'ai pondu sous mon logiciel de dessin (autocad) qui suporte le VBA ce code là mais je n'arrive pas à avoir accèder à l'endroit où je dois laisser mon mon et mon mot de passe...

    Je vous laisse mon début de code qui peut être lancer via tout interpréteur VBA ( ajouter les références Microsoft Internet Control, Microsoft HTML Object Library) :
    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
    44
    45
    46
    47
    Sub Lancer_Edoc()
        Dim ie As New InternetExplorer
        Dim RegEx As RegExp, RegMatch As MatchCollection
        Dim MyStr As String
     
        Set ie = New InternetExplorer
        Set RegEx = New RegExp
    ie.Navigate2 "https://vpnssl.bouygues-construction.com/dana-na/auth/url_12/welcome.cgi"
     
        While ie.Busy
        Wend
     
    Dim htmldoc As HTMLDocument
        Set htmldoc = ie.Document
     
    Dim SearchTextField As HTMLObjectElement
    Dim htmlElement As HTMLObjectElement
    'Dim htmlElement As HTMLText
     
    For Each htmlElement In htmldoc.all
     
     
       '   If (htmlElement.tagName Like "INPUT") Then
     
    If (InStr(1, htmlElement.outerHTML, "type=text") > 0 Or InStr(1, htmlElement.outerHTML, "type=") = 0) Then
         Set SearchTextField = htmlElement
     
    'Debug.Print
    Debug.Print "ok"
     
         End If
     
     
     
    'End If
     
     
    'Debug.Print htmlElement.outerHTML
    'Debug.Print htmlElement.innerText
    'Debug.Print htmlElement.TabIndex
    Next
    On Error Resume Next
    SearchTextField.Value = "oj"
     
    ie.Visible = True
     
    End Sub

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Bien que je crois avoir compris que ça ne marchera pas, tu as essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    https://login:motdepasse@vpnssl.bouygues-construction.com/dana-na/auth/url_12/welcome.cgi
    pour l'url ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    je viens de tester mais ça ne fonctionne pas ... j'ai peur d'avoir à abandonner...

    HELP !

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    mouèf !
    dur dur !
    Je ne sais pas si tu vas puovoir faire ce que tu veux via Internet Explorer, car il est conforme à la préconisation du W3C d'empêcher ce genre de login Name:MotDePass@AdresseURL


    Je t'invite donc à regarder du côté de la bibliothèque Microsoft XML
    Tu as accès aux méthode Post et Get des serveur HTTP
    Ca peut être très utile dans ton cas, je pense.

    Mais je ne sais pas si ce sera exactement ce qui t'intéresse.

    En tous cas, passer par IE me semble être un cul de sac !

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 30
    Points : 20
    Points
    20
    Par défaut
    Je vais tenter dès que je passerais sous windows XP (j'utilise en priorité ubuntu). Mais j'avoue que je ne comprends pas pourquoi je n'arrive pas à trouver avec VBA le "textebox" (si ça s'appelle comme ça en HTML) alors que je le trouve en regardant la source de la page internet.... y'a quelque chose qui m'échappe. Je pense qu'il y a une balise qui cache l'accès direct au textbox (pour justement éviter que quelque ne tenter de casser le nom d'utilisateur et le mot de passe et du coup moi je ne peux pas déposer mes plans automatiquement... Putain de sécurité).

    Le jour où vous souhaitez faire un site sécurisé, de grâce ne faites pas comme ça : si l'utilisateur a le bon mot de passe il accède au service, sinon il accède à un site différent. Comme ça pas besoin de grosse sécurité... Ou alors fournissez au compte goutte des applications pour vos collaborateurs pour qu'ils y accèdent plus facilement....

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 34
    Points
    34
    Par défaut VBA et Internet explorer
    Bonjour,
    j'arrive après la bataille, mais comme j'ai eu un problème un peu analogue, voilà mon code :

    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
    Sub Convention()                                                                                             ' Accès au logiciel Convention
     
    Dim IE As Object
    Dim sLocalFilename As String
    Const READYSTATE_INTERACTIVE = 3
    Const READYSTATE_COMPLETE = 4
     
            'crée un objet internet Explorer
            Set IE = CreateObject("InternetExplorer.Application")
            'le masque
            IE.Visible = True
     
            'ouvre la page d'enregistrement de identification Ecti
            IE.navigate "http://www.intranet-ecti.org/asp/index.asp"
            'attends que la page soit ouverte
            Do While IE.readyState <> READYSTATE_INTERACTIVE
            DoEvents
            Loop
     
    ' Formulaire
     
        'rempli les champs nécessaires...
        IE.DOCUMENT.all("NumExp").Value = Code
        IE.DOCUMENT.all("motDePasse").Value = Pass
        IE.DOCUMENT.all("envoyer").Click                                                          'clique sur le bouton...
     
    Do While IE.readyState <> READYSTATE_INTERACTIVE
       DoEvents
    Loop
     
    Do While IE.readyState <> READYSTATE_COMPLETE
       DoEvents
    Loop
    Evidemment les éléments entre quotes sont ceux qui sont sur le code html.
    Je ne sais pas si ça correspond à ton problème ....

  7. #7
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    j'ai complété partiellement ton code pour remplir le formulaire de login.
    Code vb : 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
    Sub Lancer_Edoc()
        Dim ie As New InternetExplorer
        Dim MyStr As String
     
        Set ie = New InternetExplorer
     
        ie.Navigate2 "https://vpnssl.bouygues-construction.com/dana-na/auth/url_12/welcome.cgi"
     
        While ie.Busy Or ie.ReadyState <> READYSTATE_COMPLETE
           DoEvents
        Wend
     
        ie.Visible = True
     
    Dim htmldoc As HTMLDocument
    Dim htmlForms As IHTMLElementCollection
    Dim htmlForm As HTMLFormElement
     
        Set htmldoc = ie.Document
        ' obtient collection des formulaire de la page
        Set htmlForms = htmldoc.getElementsByTagName("form")
        ' référence le formulaire de login
        Set htmlForm = htmlForms.namedItem("frmLogin")
        ' remplit les cases
        htmlForm.elements("username").Value = "toto"
        htmlForm.elements("password").Value = "titi"
        ' clique sur le bouton
        htmlForm.elements("btnSubmit").Click
        'ou à la place du clic
        'htmlForm.submit
     
    End Sub
    A+

Discussions similaires

  1. VBA et internet explorer - ouvrir un fichier téléchargé
    Par mrcross dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/04/2012, 15h22
  2. Excel VBA et Internet explorer 8
    Par Antoine HUG dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 11/07/2009, 09h49
  3. [VBA-E] Internet Explorer dans Excel ?
    Par iButton dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 19h13

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