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 :

Problème sur la variable IE <aucune variable>


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Par défaut Problème sur la variable IE <aucune variable>
    Bonjour,

    Le tuto de Qwazerty est très intéressant, malheureusement j'ai essayé de m'en servir.

    Le code fonctionne, la page google sur internet explorer (j'ai IE 7 - mon entreprise n'est pas passé à mieux...) et Office 2007. Malheureusement le contenu de mon espion reste désespérement vide. quand je clique sur le "+" à côté de la variable IE, il me met <aucune variable> dans la colonne valeur.

    Et un autre problème avec WaitIE, Il pose problème avec la ligne Do Until IE.ReadyState = READYSTATE_COMPLETE. Une fenêtre me dit :
    " Erreur Automation
    L'objet invoqué s'est déconnecté de ses clients"

    Si quelqu'un peut m'aider ça serait vraiment cool ...

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 105
    Par défaut
    Salut

    En espérant que ceci résolve ton problème.
    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
    Sub PremierIEGet()
    'Déclaration des variables
    Dim FirstIE As New InternetExplorer 'cette instance contiendra la page qui charge en boucle
     
    Dim IE As InternetExplorer 'Dim IE As New InternetExplorer
    Dim objShell As Shell
    Dim obj As Object
     
    FirstIE.Navigate "www.google.fr"
    FirstIE.Visible = True ' à vous de voir, il est possible de la garder masquée, mais attention a ne pas oublier de la fermer avant de finir la macro
     
    'Ensuite on recherche la nouvelle instance d'IE qui a été ouverte par la 1ère instance...
    'Ici il faudra peut-être mettre une petit Sleep histoire d'être sur que cette 2ème instance se soit chargée
    'Je suis pas fan des sleep, mais bon... des fois...
     
    'On charge la collection des appli lancés
    Set objShell = New Shell
    'On boucle
    For Each obj In objShell.Windows
        'On regarde si l'appli est de type Document internet
        If TypeName(obj.document) = "HTMLDocument" Then
            'On regarde si c'est bien l'instance qui a chargé Google
            If obj.LocationName = "Google" Then
                'On pointe cette instance via la variable IE
                Set IE = obj
                'On quite la boucle
                Exit For
            End If
        End If
    Next
     
    'Ensuite on utilise IE
    '...
    '...
    'IE.Visible = True 'Logiquement celle-ci doit déjà être visible
    IE.Navigate "www.developpez.com"
     
     
    'Fermeture d'IE
    'IE.Quit
     
    'On libère la variable IE (bien que VBA s'en occupe à la fin de la procédure)
    Set IE = Nothing
    End Sub
    Pour utiliser ce code, il faut bien penser à activer la référence "Microsoft shell control et automation" dans le menu "Outils", "références..." de VBE.

    Pour IEWait, le problème sera résolu quand tu auras résolu ton 1er problème.

    ++
    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

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Par défaut
    Bonjour,

    J'ai fait un copier-coller de ton code, et j'ai bien activé le shell et automation.

    Il me fait une erreur d'exécution :
    "La méthode 'Document' de l'objet 'IWebBrowser2' a échoué
    sur la ligne 21 de ton code.

    Merci pour l'aide que tu pourras m'apporter ou que quelqu'un d'autre pourrait m'apporter... Je galère

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 105
    Par défaut
    Salut
    Peux tu joindre ton fichier stp.

    [Edit]
    Essai comme ça
    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
    Sub PremierIEGet()
    'Déclaration des variables
    Dim FirstIE As New InternetExplorer 'cette instance contiendra la page qui charge en boucle
     
    Dim IE As InternetExplorer 'Dim IE As New InternetExplorer
    Dim objShell As New ShellWindows
    Dim obj As Object
     
    FirstIE.navigate "www.google.fr"
    FirstIE.Visible = True ' à vous de voir, il est possible de la garder masquée, mais attention a ne pas oublier de la fermer avant de finir la macro
     
    'Ensuite on recherche la nouvelle instance d'IE qui a été ouverte par la 1ère instance...
    'Ici il faudra peut-être mettre une petit Sleep histoire d'être sur que cette 2ème instance se soit chargée
    'Je suis pas fan des sleep, mais bon... des fois...
     
    'On boucle
    For Each obj In objShell '.Windows
        'On regarde si l'appli est de type Document internet
        If TypeName(obj.document) = "HTMLDocument" Then
            'On regarde si c'est bien l'instance qui a chargé Google
            If obj.LocationName = "Google" Then
                'On pointe cette instance via la variable IE
                Set IE = obj
                'On quite la boucle
                Exit For
            End If
        End If
    Next
     
    'Ensuite on utilise IE
    '...
    '...
    'IE.Visible = True 'Logiquement celle-ci doit déjà être visible
    IE.navigate "www.developpez.com"
     
     
    'Fermeture d'IE
    'IE.Quit
     
    'On libère la variable IE (bien que VBA s'en occupe à la fin de la procédure)
    Set IE = Nothing
    End Sub
    [/Edit]

    Merci
    ++

    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

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Par défaut
    Bonjour Qwazerty,

    merci de ta réponse, j'ai copié collé ton code dans un nouveau module, mais ça ne marche toujours pas, il bloque sur la ligne 19 en disant:
    "Erreur d'exécution (code d'erreur)
    La méthode 'Document' de l'objet 'IEWebBrowser2' a échoué"

    En pîèce jointe tu as mon fichier, aucun des 3 modules ne fonctionnent...

    Module 1 :
    Premier IE()
    Erreur Automation
    L'objet invoqué s'est déconnecté de ses clients

    WaitIE (IE As InternetExplorer)
    Erreur d'exécution
    La classe ne gère pas Automation ou l'interface étendue

    RechercheVBAExcel ()
    Erreur Automation
    Erreur non spécifiée

    Module 2 :
    PremierIEGet ()
    Erreur d'exécution
    La méthode 'Document' de l'objet 'IEWebBrowser2' a échoué

    Module 3 :
    PremierIEGet ()
    Erreur d'exécution
    La méthode 'Document' de l'objet 'IEWebBrowser2' a échoué
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 105
    Par défaut
    Salut

    Je n'ai aucun soucis avec les 3 modules, tout ce passe bien, il n'y a pas de ref manquantes, donc visiblement pas de soucis de version, regarde quand même du coté des versions de tes fichiers références, fait une recherche sur ton disque système
    Shell32.dll : 6.2.8250.0
    MsHtml.dll : 10.00.8250.143
    ieframe.dll : 10.00.8250.0

    J'ai vu que tu utilisé d'autres références, essaie de spécifier la bibliothèque lors de la déclaration des variables

    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 PremierIEGet()
    'Déclaration des variables
    Dim FirstIE As New InternetExplorer 'cette instance contiendra la page qui charge en boucle
     
    Dim IE As SHDocVw.InternetExplorer 'Dim IE As New InternetExplorer
    Dim objShell As New SHDocVw.ShellWindows
    Dim obj As Object
     
    FirstIE.Navigate "www.google.fr"
    FirstIE.Visible = True ' à vous de voir, il est possible de la garder masquée, mais attention a ne pas oublier de la fermer avant de finir la macro
     
    'Ensuite on recherche la nouvelle instance d'IE qui a été ouverte par la 1ère instance...
    'Ici il faudra peut-être mettre une petit Sleep histoire d'être sur que cette 2ème instance se soit chargée
    'Je suis pas fan des sleep, mais bon... des fois...
     
    'On boucle
    For Each obj In objShell '.Windows
        'On regarde si l'appli est de type Document internet
     
        If TypeName(obj.Document) = "HTMLDocument" Then
            'On regarde si c'est bien l'instance qui a chargé Google
            If obj.LocationName = "Google" Then
                'On pointe cette instance via la variable IE
                Set IE = obj
                'On quite la boucle
                Exit For
            End If
        End If
    Next
     
    'Ensuite on utilise IE
    '...
    '...
    'IE.Visible = True 'Logiquement celle-ci doit déjà être visible
    IE.Navigate "www.developpez.com"
     
     
    'Fermeture d'IE
    'IE.Quit
     
    'On libère la variable IE (bien que VBA s'en occupe à la fin de la procédure)
    Set IE = Nothing
    End Sub
    D'ailleur avec la déclaration complète, je viens de me rendre compte que ShellWindows est dans la même bibliothèque qu'InterneExplorer, il n'est donc pas la peine de rajouter la référence "Shell control and automation", qui est utile uniquement si on utilise "As Shell".

    Autre chose, à tu essayer de continuer l’exécution du code en passant à la ligne suivante (tu peux décaler la petite flèche jaune dans la gouttière de gauche lorsque tu es en mode pas à pas ou débogage. La ligne ou se trouve l'erreur n'est pas une ligne de déclaration, le problème vient peut-être du fait que l'objet contenu dans "obj" n'a pas de propriété "document"...
    ++
    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. Problème sur la variable IE <aucune variable>
    Par Symone dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/11/2013, 17h44
  2. Variable session non retenue / problème sur Firefox
    Par hatembr dans le forum Langage
    Réponses: 10
    Dernier message: 25/04/2007, 17h22
  3. Problèmes sur Get Set d'une variable.
    Par Mattk dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/04/2007, 01h43
  4. Problème sur Variable globale
    Par diamonds dans le forum Langage
    Réponses: 1
    Dernier message: 16/03/2007, 10h52
  5. Problème sur Variable
    Par Jordmund dans le forum Access
    Réponses: 1
    Dernier message: 16/05/2006, 11h30

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