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 :

Acces web par vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut Acces web par vba
    Bonjour,

    je tente de contrôler des pages web par le biais de vba mais je suis bloqué dès le départ par l'authentification.
    je lance bien la page web (qui est une page intranet par acces ip de type 10.0.0.1/youou/etc.html) et une sorte de formulaire viens imédiatement s'ouvrir en me demandant le nom d'utilisateur et le mot de passe

    j'ai tenté ce code trouvé sur developper.com
    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://10.0.0.1/youou/etc.html")
     
        '  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" 'ca bug ici déja
     
        '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
    Mais ca ne fonctionne pas

    après recherche j'ai tenté le sendkeys
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub connexion()
    ThisWorkbook.FollowHyperlink "http://10.0.0.1/youou/etc.html", , True
    Application.Wait (Now + TimeValue("00:00:10"))
     
    DoEvents
    Mot_de_Passe = inputbox("indiquez le mote de passe")
    SendKeys ("toto") 'user
    SendKeys "{TAB}"
    SendKeys (Mot_de_Passe) 'password
    SendKeys "{ENTER}"
    End Sub
    mais ca ne m'inscrit que quelque lettre dans le formulaire et le reste dans mon VBE (ce qui m'arrange pas)
    j'ai encore d'autres pages après et je bloque dès le départ c'est rageant

    Ou je me trompe ?

  2. #2
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Personne pour m'aider, me dire si je fais fausse route, ou si la gestion vba/web est bien trop compliqué à gérer

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Personne pour m'aider,
    Si si.

    Regarde ici et aussi

    Le site est une mine d'info mais la recherche d'info y est très fastidieuse, car pas ou peu de liens directs.

    Regarde bien les liens sur cette page.
    La solution y est mais pas moyen de retrouver la bonne page... et j'ai ma dose.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Merci pour ton aide godzestla, j'ai justement cherché sur ce site, mais ca ne fonctionne pas.
    Avec le premier code rien ne se passe (probablement parceque j'ai une nouvelle fenêtre qui s'ouvre (demandant login et password) et je ne sais pas comment y acceder)

    Concernant la deuxieme solution (les sendkeys), il commence à inscrire les 3 premières lettres dans le formulaire la ou je veux, puis inscrit le reste dans mon VBE (et je ne sais pas pourquoi).
    A un moment il est fait mention de appactivate pour que ce problème n'arrive pas, mais je n'arrive pas à bien l'utiliser sur l'adresse web et ce formulaire qui s'ouvre

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    Est ce que cette fenêtre est provoqué par le serveur IIS?
    Si tu peux le faire, je te conseille d'enlever cette demande d'authentification !!!

    J'avais la possibilité de l'enlever, je l'ai fait donc je ne pourrais pas apporter de solution miracle.

  6. #6
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Malheureusement non je ne peux pas l'enlever

    J'ai beau chercher je ne comprends pas j'ai l'impression qu'il stoppe complètement la macro lors de l'ouverture de ce formulaire car si je fais annuler (pour ne pas saisir d'identifiant et de mot de passe il bugge sur les autres éléments (ou m'inscrit les sendkeys un peu n'importe ou)

    Quelqu'un à t'il une idée ?

  7. #7
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    Je n'ai pas regardé ton problème dans le détail , mais il faut compendre que l'exemple d'authentification utilisé ne fonctionne que si le champs tu utilises le nom des champs de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IEdoc.getElementsByName("vb_login_username").
    permet de lire un champs saisie avec le nom vb_login_username.

    Pour ton cas , tu charges ton formulaire d'authentification et tu édites le source et dans ton source tu récupéres les nom des champs équivalents à login et password....

  8. #8
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    Pour te faciliter la tache, il existe sur les derniers explorateurs internet une fonction "développeur", accessible sur internet explorer et chrome via le raccourci F12. Tu peux ensuite utiliser le bouton "loupe" sous Chrome ou "pointeur" sous IE qui te permettent de pointer l'objet sur la partie navigation donnant ainsi le focus a la ligne de code y faisant référence.

    J'ai survolé le post mais une question, la demande de login apparaît dans la même feuille ou dans une autre? Si c'est dans une autre feuille il te faudra d'abord pointer la nouvelle instance du navigateur avant de pouvoir faire référence aux éléments qui le composent. Et si c'est un messagebox ou un formulaire, ça sera peut être plus compliqué.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Merci beaucoup pour votre aide

    CodeFacile je vois ce que tu veux dire mais je ne sais pas trop comment obtenir le nom
    Qwazerty c'est bien un nouveau formulaire qui s'ouvre (je comprends donc que ca va être plus compliqué )
    je regarde pour les zones dévellopeurs (ici pas de chrome ni la dernière version de IE) pour obtenir le nom comme le dis CodeFacile mais ce n'est pas simple, maintenant comme c'est un nouveau formulaire comment y acceder ?

  10. #10
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Sans voir la page, ni son code source, il va être difficile de t'aider, il y a bien des cas différents.
    Voila quelques pistes que tu peux suivre

    1/ Télécharge la version portable de chrome, elle permet d’être exécute a partir d'un clef usb. Ça ne fonctionne pas sur toutes les appli intranet, je sais qu'au boulot je n'ai pas accès à certaines appli avec chrome portable. Ça te permettra d'avoir l'inspecteur d'éléments.

    2/Si tu dois farfouiller dans le code source directement, utilise un petit logiciel style NotePad++ (gratuit lui aussi) dans ses menus tu trouveras la possibilité de mettre en forme le code au format HTML, ce qui hiérarchisera les éléments. Ça facilite la recherche et la lecture.

    3/Dans ton code, recherche le lien qui lance ton formulaire (s'il existe), si tu parviens à le trouver, à partir de vba, tu ouvres une 2ème instance d'IE et tu exécutes le lien du formulaire, ainsi, ton formulaire se retrouve dans une appli IE "connue". Dans l'Inspecteur d'élément tu as un onglet TimeLine, tu y verras le déroulement du chargement de ta page principale, c'est une piste pour trouver l'adresse exécutée pour lancer le formulaire.

    4/Par contre petite mise en garde, il n'est pas toujours très sécuritaire de se loger directement via vba en plaçant login est mot de passe dans ton code, il est parfois préférable de laisser l'utilisateur se connecter, tu affiches un msgbox, qui lui demande de se loger et de cliquer sur un bouton placé sur le dit msgbox.

    ++
    Bon courage
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Je comprends ce que tu dis, mais je n'ai pas assez d'accès ici pour obtenir quoi que ce soit à chaque fois je suis bloqué par des droits admninistrateurs.

    Ci joint le login qui s'ouvre dès que j'accède à l'adresse intranet (c'est une adresse ip je rappelle), je suis dans l'incapacité d'obtenir n'importe quel information sur cette nouvelle boite puisque les seuls accès que j'ai sont les case avec le login et l'utilsateur qui me sont accessible (je ne peux plus accéder aux informations de base et encore moins le code source)

    Tu as raison sur le principe, et je vais laisser faire avec code et mot de passe automatiquement par l'utilisateur sans plus m'embeter. Par contre si j'ai bien compris, les autres pages internet qui s'ouvre, je selectionne l'adresse et j'agis directement dessus comme me l'a expliqué codefacile ?
    Images attachées Images attachées  

  12. #12
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    La fenêtre que tu montre n'est pas une fenêtre IE, c'est une fenêtre système, affichée par Windows pour te demander tes identifiant de connexion, on sort carrément du cadre d'excel/IE.
    Je pense en effet qu'il est plus sage de laisser l'utilisateur se loger. Même si je peste souvent contre certain droit admin, ils sont tout de même la pour assurer un minimum de stabilité et de sûreté.

    Je ne comprend pas bien la dernière partie de ton message. Tu auras ta page "principale" chargée dans l'IE que tu manipules via accès, si dans le déroulement de ta macro d'autres pages s'ouvrent, il faudra, comme je te l'est expliqué.
    Soit récupéré le handle de la nouvelle fenêtre IE pour pouvoir la manipuler (pour ma part je trouve pas ça top).
    Soit récupérer le lien qui se lance (via clique bouton ou autre) et le charger dans une autre fenêtre IE que tu contrôles (ou dans la principale si tu n'as plus besoin de son contenu).

    Il n'est pas facile de répondre à ta question, il existe pas mal de cas différents, il faudrait savoir quel fenêtre s'ouvrent sur quels actions de ta part.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  13. #13
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    les fenêtres qui s'ouvre sont comme tu me l'as dis. Je dois cliquer sur le lien mais comment je fait pour

    Soit récupérer le lien qui se lance (via clique bouton ou autre) et le charger dans une autre fenêtre IE que tu contrôles (ou dans la principale si tu n'as plus besoin de son contenu).
    c'est a dire la fenêtre IE que tu controle

    je remet le code de la sub connexion que j'avais faites ?

    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.visible = True
        ie.Navigate ("http://10.0.0.1/youou/etc.html")
    je n'arrive malheureusement pas bien à comprendre comment agir.
    Mes étapes suivantes sont un click sur la page donc vers un autre lien (comme tu le dis) donc je comprends qu'il faut que je récupère le lien (ça j'y arrive encore) et que je le mette dans ie.navigate ?
    Après je dois mettre une date, une année puis lancer le traitement donc comme tu le dis il faut que j'arrive à récupérer le nom des champs dans la page internet

  14. #14
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Citation Envoyé par amnorian Voir le message
    Mes étapes suivantes sont un click sur la page donc vers un autre lien (comme tu le dis) donc je comprends qu'il faut que je récupère le lien (ça j'y arrive encore) et que je le mette dans ie.navigate ?
    Après je dois mettre une date, une année puis lancer le traitement donc comme tu le dis il faut que j'arrive à récupérer le nom des champs dans la page internet
    Alors lien ou bouton, non tu n'es pas forcé de récupérer le lien, tout dépend du comportement que tu vas obtenir en exécutant le lien à partir du code.

    Il faut que tu regarde le code source de ta page, tu trouveras ça dans les menu d'IE. Tu dois ensuite identifier ou se trouve le lien sur lequel tu es sensé cliquer. Tu devrais trouver un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#actu_1" id="aclink_1" onclick="showActu(1);return false;" class="selected">1</a>
    bien sur ça peu varier un peu. Au passage , le lien qui est executé est contenu dans "href=". Ici la partie "intéressante" c'est le "id=" aclink_1.
    Colle le contenu de la ligne que tu aura trouvé stp (si rien de confidentiel bien sur)
    2 cas, soit à chaque fois que tu rafraîchis la page, l'id est le même, c'est le cas le plus simple


    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
        Dim IE As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.visible = True
        ie.Navigate ("http://10.0.0.1/youou/etc.html")
     
        'On boucle tant que la page n'est pas totalement chargé
        Do Until IE.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
     
        Set IEDoc = ie.document
     
        IEDoc.links("aclink_1").Click 'Bien sur ici tu remplace aclink_1 par la valeur id que tu auras trouvé avant.
     
     
        Set IE = Nothing
        Set IEDoc = Nothing
    Le code est un peu améliorable, mais normalement la fenêtre s'ouvre.
    Je fait l'impasse sur l'Id dynamique, si tu vois qu'en rafraîchissant l'ID change on fera autrement.

    Maintenant dis moi si le "contenu" du lien c'est ouvert dans ta feuille IE ou si une nouvelle feuille a été lancée?

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  15. #15
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Je ne comprends pas mon code bloque sur la dernière ligne et donc je n'arrive pas à faire ce que tu demande. j'ai pourtant bien cocher la case microsoft internet controls

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.visible = True
        ie.Navigate ("http://10.0.0.1/youou/etc.html")
     
        Set IEdoc = ie.Document
    En utilisant pas cette dernière ligne j'arrive à avancer dans mes pages grace à ie.navigate en mettant le lien HTTP à chaque fois. Donc sur le principe ça me convient

    maintenant je reste bloqué sur l'avant dernière étape qui est de rentrer le mois et l'année puis d'executer (j'aurais après à extraire les informations...)

    j'ai utilisé firefox pour obtenir le code que je met joint mais comme je reste bloqué sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set IEdoc = ie.Document
    je ne peux pas mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set DOCelement = IEdoc.getElementsByName("MOIS").Item
        DOCelement.Value = "02"
    qui me permettrait de mettre le mois à mon avis, nan ?

    je remet le code html que j'ai obtenu

    <TD><B><PRE>Entrer un mois: </B><INPUT NAME=MOIS TYPE=text SIZE=2 VALUE = ></TD>
    <TD><B><PRE> Entrer une année: </B><INPUT NAME=ANNEE TYPE=text SIZE=4 VALUE = ></TD>
    <TD><INPUT NAME=submit TYPE=SUBMIT VALUE=Exécuter></TD>
    Images attachées Images attachées  

  16. #16
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut

    J'avais recopié ton code et j'ai laisser passer une coquille, désolé.
    De plus certaines parties du code que je t'ai donné on disparues, la boucle d'attente par exemple. Ce qui fait que lorsque le code veux définir ta variable IEDoc, document n'existe pas encore étant donné que la page n'est pas chargée .

    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
    Dim IE As New InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        ie.visible = True
        ie.Navigate ("http://10.0.0.1/youou/etc.html")
     
        'On boucle tant que la page n'est pas totalement chargé
        Do Until IE.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
     
        Set IEDoc = ie.document
     
        IEDoc.links("aclink_1").Click 'Bien sur ici tu remplaces aclink_1 par la valeur id que tu auras trouvé avant.
     
     
        Set IE = Nothing
        Set IEDoc = Nothing
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  17. #17
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    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
     
     Sub connexion()
        Dim ie As InternetExplorer
        Dim IEdoc As Object
        Dim DOCelement As Object
     
        Set ie = New InternetExplorer
        ie.visible = True
        ie.Navigate ("10.0.0.1/youou/etc.html")
     
     
         'attente de fin de chargement
        Do Until ie.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
     
        Set IEdoc = ie.Document
     
        ie.Navigate ("10.0.0.1/youou/etc2.html")
        ie.Navigate ("10.0.0.1/youou/etc3.html")
     
     
        Set DOCelement = IEdoc.getElementsByName("MOIS").Item
        DOCelement.Value = "02"
    end sub
    Il me met :

    erreur d'execution 91
    variable ou bloc d'objet non défini et pointe sur la dernière ligne (Docelement)

  18. #18
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    A chaque fois que tu appelles Navigate, il faut faire une boucle d'attente.
    Par contre quel intérêt de lancer plusieurs pages les unes derrière les autres sans rien faire dessus?

    Charge directement "10.0.0.1/youou/etc3.html" la 1ère fois et fait ce que tu as à faire dessus.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  19. #19
    Membre habitué
    Homme Profil pro
    Consultant comptable
    Inscrit en
    Mai 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant comptable

    Informations forums :
    Inscription : Mai 2011
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    J'ai fais ce que tu m'as dis (tous le reste marche tres bien d'ailleurs merci )
    Mlaheureusement meme probleme à la ligne du

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOCelement.Value = "02"
    Après vérif la ligne du dessus DOCelement = notihing (lorsque je regarde la valeur de la variable.
    A priori il ne prends pas en compte le IEdoc.getElementsByName("MOIS").Item
    Pourtant il s'agit bien du "MOIS", je ne comprends pas...

    La page est de type frame visiblement ça joue sur quelquechose ?

  20. #20
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Non le type frame n'y ai, à mon, avis pour rien, bien qu'il soit géré comme une page à part, les éléments sont, il me semble, accessibles.

    Par contre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DOCelement = IEdoc.getElementsByName("MOIS").Item
    .Item à la fin ça correspond à la collection d'item, pas à un item, il faut lui donner un numéro d'item, essai comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DOCelement = IEdoc.getElementsByName("MOIS").Item(0)
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Déclencher un téléchargement d'une page web par VBA
    Par sacotte dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/01/2011, 10h53
  2. Debian virtualisé, samba et accès web par Windows
    Par GLDavid dans le forum Administration système
    Réponses: 4
    Dernier message: 11/10/2010, 09h33
  3. Autorisation d'accès à une table par VBA
    Par electrosat03 dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2007, 17h55
  4. Changer les droits d'accès par VBA
    Par electrosat03 dans le forum Sécurité
    Réponses: 2
    Dernier message: 20/12/2006, 15h26
  5. Accès outlook par programmation VBA depuis access
    Par STOUPI dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 18h22

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