Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/01/2008, 12h52   #1
Invité régulier
 
Inscription : novembre 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 28
Points : 8
Points : 8
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 :
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
sechanbask est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 08h51   #2
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Bien que je crois avoir compris que ça ne marchera pas, tu as essayé :
Code :
1
2
 
https://login:motdepasse@vpnssl.bouygues-construction.com/dana-na/auth/url_12/welcome.cgi
pour l'url ?
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 13h54   #3
Invité régulier
 
Inscription : novembre 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 28
Points : 8
Points : 8
je viens de tester mais ça ne fonctionne pas ... j'ai peur d'avoir à abandonner...

HELP !
sechanbask est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 14h52   #4
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
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 !
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 07h47   #5
Invité régulier
 
Inscription : novembre 2006
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 28
Points : 8
Points : 8
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....
sechanbask est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2008, 09h06   #6
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 58
Points : 12
Points : 12
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 :
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 ....
epaminondas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 12h24   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
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 : 3 941
Points : 6 283
Points : 6 283
Bonjour,

j'ai complété partiellement ton code pour remplir le formulaire de login.
Code vb :
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+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h16.


 
 
 
 
Partenaires

Hébergement Web