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 :

La méthode 'Document' de l'objet 'IWebBrowser2' a échoué [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Par défaut La méthode 'Document' de l'objet 'IWebBrowser2' a échoué
    Bonjour,

    Je viens à l'aide, j'ai récupérer une macro d'un collègue qui permet de piloter internet explorer.

    Je dois reprendre cette macro et la modifier pour effectuer d'autres manipulations.

    Mon soucis est que dès le lancement de la macro (manipulation d'Internet Explorer) une erreur apparait : "La méthode 'Document' de l'objet 'IWebBrowser2' a échoué" dès que l'on veut manipuler IE avec ie.methode

    Voici le 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
    Public Sub connecte()
    Set ie = CreateObject("internetexplorer.application")
        ie.Visible = True
        ie.navigate "https://distri-raccordement.edf.fr"
        wait
        If Not ie.document.all.item("HU_LOGIN") Is Nothing Then
            ie.document.all.item("HU_LOGIN").Value = "MonLogin"
            ie.document.all.item("HU_PW").Value = "MonMotdePasse"
            ie.document.vccform.submit
            wait
        End If
        posi = InStr(ie.document.body.innerhtml, "PHPSESSID")
        sessionId = Mid(ie.document.body.innerhtml, posi + 10, 26)
    End Sub
     
    Public Sub wait()
        Do While ie.busy: Loop
        Do While ie.document.readystate <> "complete": Loop
    End Sub
    Pour être précise, ça plante dès la ligne qui contient ie.busy

    C'est la première fois que j'utilise l'objet internetexplorer donc je ne sais pas du tout comment faire pour résoudre mon soucis. Si l'un d'entre vous à une idée ça me serait d'une grande aide.

    Merci d'avance

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    utilise un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Do until IE.readystate = READYSTATE_COMPLETE
    Doevents
    Loop
    Ou un do while avec un timer

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Par défaut
    Je vais tester ça tout de suite

    Petite question supplémentaire, est-ce normal que ça fonctionne sur le poste de mon collègue et pas sur le mien?

    J'ai tester ta proposition, malheureusement même résultat :/

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Tu crois que le programme sait ce que c'est qu'IE ?
    Il faut lui envoyer en argument!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub waiting(IE As internetExplorer)
    Do until IE.readystate = READYSTATE_COMPLETE
    Doevents
    Loop
    End sub
    Ou tout simplement un pause de 3 secondes (J'utilise toujours cela que je trouve bien plus fiable pour les interactions avec des serveurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub wait3secs()
    PauseTime=3
    Start = Timer
    Do while Timer< Start + Pausetime
    Doevents
    Loop
    End sub

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Par défaut
    J'ai pris l'option de la pause de 3 secondes c'est vrai que c'est mieux.

    Après avoir modifié pour mettre une pause de 3 secondes il me fait bien la pause mais bloque sur la prochaine instruction contenant ie.methode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not ie.document.all.item("HU_LOGIN") Is Nothing Then
    L'erreur est la suivante:
    Erreur d'éxécution '-2147023179 (800706b5)':

    Erreur Automation
    Interface inconnue.
    Je ne sais pas si il manque une référence ou bien si le problème est ailleurs

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    all.item() ne marchera pas..

    Il faut lui donner le numéro de l'item all(145) pour l'utiliser

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ERREUR:la méthode open de l'objet recordset a échoué
    Par ashash dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/07/2007, 13h06
  2. Réponses: 7
    Dernier message: 04/06/2007, 16h23
  3. erreur La méthode 'Range' de l'objet '_Global' a échoué
    Par mahboub dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/11/2006, 20h46
  4. la méthode 'connection' de l'objet '_currentProject' a échoué
    Par floysand dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/09/2006, 12h14
  5. [VBA-E]La méthode 'Range' de l'objet '_Global' a échoué
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/02/2006, 16h00

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