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 :

IE.document contient toujours <Aucune variable> et donne une incompatibilité de type


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Amateur VBA et PHP
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur VBA et PHP
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut IE.document contient toujours <Aucune variable> et donne une incompatibilité de type
    Bonjour,

    Je suis le tutoriel de Qwazerty Interaction avec Internet Explorer via VBA Excel et en reprenant le code donné en exemple, je m'aperçois que la variable IE n'est pas alimentée.

    Le code que j'emploie est celui de la section IV-C. Inscrire du texte dans une zone de texte
    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
     
    Option Explicit
    Sub RechercheVBAExcel()
    'Déclaration des variables
    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim InputGoogleZoneTexte As HTMLInputElement
    Dim InputGoogleBouton As HTMLInputElement
     
       'Chargement d'une page Web Google
       IE.navigate "www.google.fr"
     
       'Affichage de la fenêtre IE
       IE.Visible = True
     
       'On attend le chargement complet de la page
       WaitIE IE
     
       'On pointe le membre Document
       Set IEDoc = IE.document
     
       'On pointe notre Zone de texte
       Set InputGoogleZoneTexte = IEDoc.all("q")
     
       'On définit le texte que l'on souhaite placer à l'intérieur
       InputGoogleZoneTexte.Value = "VBA Excel"
     
       'On attend la fin de la recherche
       WaitIE IE
     
       'On libère les variables
       Set IE = Nothing
       Set IEDoc = Nothing
    End Sub
    Sub WaitIE(IE As InternetExplorer)
       'On boucle tant que la page n'est pas totalement chargée
       Do Until IE.readyState = READYSTATE_COMPLETE
          DoEvents
       Loop
    End Sub
    Les références sont : Nom : références.jpg
Affichages : 1196
Taille : 60,8 Ko
    J'exécute la macro en mode pas à pas.
    La page internet explorer 11 est bien ouverte et chargée.

    La fenêtre espion donne, quand je suis arrêté avant l'exécution de la ligne 20 Set IEDoc = IE.document : Nom : Capture.JPG
Affichages : 1137
Taille : 49,0 Ko

    Et le message d'erreur (Erreur d'exécution '13': incompatibilité de type) quand j'exécute cette ligne 20 Set IEDoc = IE.document : Nom : erreur.jpg
Affichages : 1143
Taille : 15,5 Ko

    Comment faire en sorte que le contenu de la page internet soit effectivement passée dans IE afin que je puisse continuer à travailler s'il vous plaît ?
    Merci d'avance et bonne journée.

  2. #2
    Membre averti
    Inscrit en
    Août 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 66
    Par défaut
    Essaie d'initialiser ta variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Initialisation des variables
       Set IE = CreateObject("InternetExplorer.Application")

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Amateur VBA et PHP
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur VBA et PHP
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut
    Citation Envoyé par bobby5169 Voir le message
    Essaie d'initialiser ta variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Initialisation des variables
       Set IE = CreateObject("InternetExplorer.Application")
    Merci bobby5169, je viens d'essayer. Rien ne change, les erreurs sont identiques.

  4. #4
    Membre averti
    Inscrit en
    Août 2004
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 66
    Par défaut
    J'avais eu un besoin similaire et ma boucle d'attente était plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    While oNav.ReadyState <> READYSTATE_COMPLETE Or oNav.Busy = True
              DoEvents
    Wend
    Alors que la tienne finalement, tu n'y rentres jamais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Do Until IE.readyState = READYSTATE_COMPLETE
          DoEvents
    Loop

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    il y a tellement d'exemple sur le forum que je me demande si tu a utiliser le moteur de recherche de DVP ( ce qui m'etonnerait )

    puré!!!
    exemple 1
    on ouvre et navigue dans google et manipule les htmlelements

    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
     
    Option Explicit
    Sub RechercheVBAExcel()
    'Déclaration des variables
        Dim IE As Object, IEDoc As Object, InputGoogleZoneTexte As Object, InputGoogleBouton As Object
        Set IE = CreateObject("internetexplorer.application")    'creation de l'intence de internet
        IE.navigate "www.google.fr"    'Chargement d'une page Web Google
     
        IE.Visible = True    'Affichage de la fenêtre IE
     
        Do: DoEvents: Loop While IE.readystate <> 4    'On attend le chargement complet de la page
        Set IEDoc = IE.document    'On pointe le membre Document
     
        Set InputGoogleZoneTexte = IEDoc.all("q")    'On pointe notre Zone de texte
        InputGoogleZoneTexte.Value = "VBA Excel"    'On définit le texte que l'on souhaite inscrire à l'intérieur
     
        Set InputGoogleBouton = IEDoc.all("btnK")(0)    ' on pointe sur le bouton rechercher
        InputGoogleBouton.Click    ' on clique sur le bouton rechercher
     
        Do: DoEvents: Loop While IE.readystate <> 4    'On attend la fin de la recherche
     
        ' analyse de ta recherche ici 
        '........
        '........
     
        'On libère les variables
        Set IE = Nothing
        Set IEDoc = Nothing
    End Sub
    !! SINON TU PEUX FAIRE PLUS SIMPLE !!!


    exemple 2
    on argumente l'url directement !!!!!et pas besoins de manipuiler les inputs

    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
    Sub RechercheVBAExcel2()
    'Déclaration des variables
        Dim IE As Object, IEDoc As Object, InputGoogleZoneTexte As Object, InputGoogleBouton As Object, recherche As String
        recherche = "VBA EXCEL"    'ce que tu recherche
        Set IE = CreateObject("internetexplorer.application")    'creation de l'intence de internet
     
        IE.Visible = True    'Affichage de la fenêtre IE
     
       'Chargement d'une page Web Google ARGUMENTEE!!!!!!!!!!!!!!!la recherche se fait toute seule sans manipulation des htmlelements
        IE.navigate "https://www.google.fr/search?source=hp&q=" & recherche & "&btnK=Recherche+Google&oq=vba+excel"
     
        Do: DoEvents: Loop While IE.readystate <> 4    'On attend le chargement complet de la page
     
       ' analyse de ta recherche ici 
       '........
       '........
     'On libère les variables
        Set IE = Nothing: Set IEDoc = Nothing
    End Sub
    100 fois je l'ai donné cet exemple

    et si c'est pas assez explicit
    ben tu fait une recherche sur DVP
    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
    Sub RechercheVBAExcel3()
    'Déclaration des variables
        Dim IE As Object, IEDoc As Object, InputGoogleZoneTexte As Object, InputGoogleBouton As Object, recherche As String
        recherche = "VBA internet google"    'ce que tu recherche
        Set IE = CreateObject("internetexplorer.application")    'creation de l'intence de internet
     
        IE.Visible = True    'Affichage de la fenêtre IE
        'Chargement d'une page Web Google ARGUMENTEE!!!!!!!!!!!!!!! avec la recherche
        IE.navigate "https://www.developpez.net/forums/search.php/?query=" & recherche
     
        Do: DoEvents: Loop While IE.readystate <> 4    'On attend le chargement complet de la page
     
        IE.document.getelementsbyname("searchuser")(0).Value = "" 'membre recherché 
        IE.document.getelementsbyname("dosearch")(0).Click ' click dessus
        'On libère les variables
        Set IE = Nothing: Set IEDoc = Nothing
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Amateur VBA et PHP
    Inscrit en
    Février 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur VBA et PHP
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Février 2019
    Messages : 7
    Par défaut Erreurs sur les trois exemples
    Bonsoir patricktoulon,

    Merci pour tes informations complètes (j'ai déjà passé beaucoup de temps partout pour résoudre mon problème). J'aime bien trouver seul les solutions, c'est une façon d'apprendre.

    J'exécute les trois exemples en mode pas à pas et lentement pour laisser le temps à la page de se charger, même s'il y a la boucle pour s'en assurer.
    Sur l'exemple 1 (ligne 11, DoEvents) et l'exemple 2 (ligne 12, DoEvents), j'ai une erreur 462
    Nom : 462.jpg
Affichages : 1052
Taille : 17,1 Ko
    Sur l'exemple 3 (ligne 13, IE.document.getElementsByName("searchuser")(0).Value = "") donne une erreur 91. IE contient bien des informations et IE.Document contient <Aucune variable>
    Nom : 91.png
Affichages : 1035
Taille : 3,5 Ko

    Next step ?

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. Problème sur la variable IE <aucune variable>
    Par licwimi dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 16/10/2012, 21h41
  3. Allouer un espace mémoire toujours à la même variable
    Par GatH7614 dans le forum Débuter
    Réponses: 6
    Dernier message: 19/08/2010, 13h52
  4. [JavaScript] [FAQ] Mais pourquoi faut-il toujours déclarer ses variables ?
    Par Auteur dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/01/2009, 20h08
  5. Aucune variable dans $_POST
    Par Anduriel dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2006, 17h06

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