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 :

VBA - Internet Explorer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut VBA - Internet Explorer
    Bonjour,

    Je cherche à développer un script VBA et piloter Internet explorer pour importer des données dans une feuille excel

    J'ai fait le tour des différents tutos trouver sur google et je coince toujours sur une même erreur.

    Je crée mon instance IE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Dim IE As New InternetExplorer
        Dim IEDoc As HTMLDocument
        Dim CAnchor As HTMLAnchorElement
     
        'On ouvre la page
        IE.navigate "http://www.domain.com"
     
        'Affichage de la fenêtre IE
        IE.Visible = True
        WaitIE IE
    Ensuite je localise le lien qui m’intéresse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Set IEDoc = IE.document
        Set CAnchor = IEDoc.body.all(77)
        CAnchor.Click
    J'attends le chargement de la page

    Je redefinis mon nouveau lien à cliquer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Set CAnchor = IE.body.all(61)
    J'ai une erreur sur cette dernière ligne car la variable IEDoc contient les éléments de la page initial et l'erreur arrive alors que la dernière page n'est pas encore complètement chargée.

    Voici le code de la fonction WaitIE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Function WaitIE(ByVal MyIE As InternetExplorer)
         With MyIE
            Do While .Busy Or Not .readyState = 4
                DoEvents
            Loop
        End With
    End Function
    Si quelqu'un à une Idée?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    Bonjour,

    Merci pour la réponse, cela ne fonctionne pas...

    Le code complet est :

    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
     
    Sub DGAC()
     
        Dim IE As New InternetExplorer
        Dim IEDoc As HTMLDocument
     
        'On ouvre la page
        IE.navigate "http://www.domaine.com/"
     
        'Affichage de la fenêtre IE
        IE.Visible = True
        WaitIE IE
        Set IEDoc = IE.document
        WaitDoc IEDoc
        IEDoc.all("FORM_ACTION").Value = "CHOOSE_TYPEAERONEF"
        IEDoc.all("FORM_CHECK").Value = "true"
        IEDoc.all("FORM_ROW").Value = ""
        IEDoc.forms("form").submit
        WaitIE IE
        Set IEDoc = IE.document
        WaitDoc IEDoc
        MsgBox (IEDoc.body.all(61).value)
     
    End Sub
    avec les procédures suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function WaitIE(ByVal IE As InternetExplorer)
            Do While Not IE.readyState = 4
                DoEvents
            Loop
    End Function
     
    Sub WaitDoc(doc As HTMLDocument)
      Do While Not doc.readyState = "complete"
        DoEvents
      Loop
    End Sub
    Une erreur survient sur la ligne MsgBox (IEDoc.body.all(61).value) alors que la page n'est pas chargée du tout...

    Je ne comprends pas pourquoi le script n'attends pas la fin de chargement de la page

    Merci d'avance

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Il faut essayer de savoir quelle partie de la page n'est pas chargée.
    Ton IEDoc.body.all(61) ne nous dit absolument pas de quel type d'objet il s'agit.

    En fonction de l'objet, il faut voir si cet objet n'a pas une propriété readystate.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    Bonjour,

    la balise correspondant à IEDoc.body.all(61) est un HTMLAnchor.

    Mon but est de cliquer sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <A   href="#" onclick="javascript:{document.form.FORM_ACTION.value='CHOOSE_TYPEAERONEF';document.form.FORM_CHECK.value='true';document.form.FORM_ROW.value='';document.form.submit();}"  >
    <div style="margin-left:40px">Modèle d'aéronef</div></A>
    Ce qui me renvoie sur la même URL mais avec un code HTML différent dans lequel se trouve :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <A   href="#" onclick="javascript:{document.form.FORM_ACTION.value='SEARCH';document.form.FORM_CHECK.value='true';document.form.FORM_ROW.value='';document.form.submit();}"   class='lientexte'>
    <div style="margin-left:40px">Rechercher</div></a>
    C'est ce 2ème lien qui me pose soucis.

    y a t il une astuce qui m'aurait échappé ?

    Cdl

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Par défaut
    petit Up

Discussions similaires

  1. Souci dans le pilotage d'internet explorer avec vba
    Par alyjeje dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/08/2009, 18h22
  2. Excel VBA et Internet explorer 8
    Par Antoine HUG dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 11/07/2009, 10h49
  3. vba ACCESS et Internet Explorer
    Par BRUNO71 dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/01/2009, 19h53
  4. VBA et Internet explorer
    Par sechanbask dans le forum Général VBA
    Réponses: 6
    Dernier message: 27/05/2008, 13h24
  5. [VBA-E] Internet Explorer dans Excel ?
    Par iButton dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 20h13

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