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 :

Interaction avec Internet Explorer avec VBA Excel [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut Interaction avec Internet Explorer avec VBA Excel
    Bonjour à tous.
    Je me suis inspiré du tuto de "Qwazerty"
    Voici mon programme
    Mon problème est que je n'arrive pas a aficher le texte de la seconde page.
    J'ouvre bien la seconde page en cliquant sur le bouton, par (FormCherche.submit)

    mais je ne peux pas lire la seconde page en fait IE.Doc est toujours la première.
    Suis je clair ?????


    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
    45
    46
    47
    48
    49
    50
    51
    Sub RechercheVBAExcel()
     
        'Déclaration des variables
        Dim IE As New InternetExplorer
        Dim IEDoc As HTMLDocument
        Dim InputZoneTexte As HTMLInputElement
        Dim InputBouton As HTMLInputElement  
        Dim htmlTagCol As IHTMLElementCollection
        Dim Generic As HTMLGenericElement
        Dim HtmlElementStandard As HTMLGenericElement
        Dim LeTexteExtrait As String
     
     
        'Chargement d'une page Web 
        IE.Navigate "https://www.ma-comptabilite.com/"
        '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 InputZoneTexte = IEDoc.all("id")
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputZoneTexte.Value = "nom utilisateur"
        'On pointe notre Zone de texte
        Set InputZoneTexte = IEDoc.all("pw")
        'On définit le texte que l'on souhaite placer à l'intérieur
        InputZoneTexte.Value = "mot de passe"
        'On pointe la Form qui contient Zone de Texte + Bouton (entre autres)
        Set FormCherche = IEDoc.forms("formAcces")
        'On exécute l'action Submit de la Form
        FormCherche.submit
     
        'On attend la fin de la recherche
        WaitIE IE
        'On pointe la page Document html
        Set IEDoc = IE.document
     
        'je cherche tous le texte dans la page web
    Set HtmlElementStandard = IEDoc.body.all(0)
    'On le place dans notre variable prévue à cet effet
    LeTexteExtrait = HtmlElementStandard.innerText
    'On affiche le texte
    MsgBox LeTexteExtrait, Title:="Le texte extrait de la page"
     
        'On libère les variables
        Set IE = Nothing
        Set IEDoc = Nothing
     
    End Sub

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    le code étant incomplet je dirais certainement une mauvaise synchronisation après le clic …

    Comme pourtant indiqué dans le tutoriel l'attente doit être effectuée au niveau du Document et non d'IE !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    Merci pour cette réponse.
    Je pense que tu me fais remarquer ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       'Chargement d'une page Web Google
        IE.Navigate "https://www.ma-comptabilite.com/"
        '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
    mais si je fais ceci, ca ne fonctionne pas .
    La page n'est pas chargée assez vite.
    J'ai relu le document et je n'ai pas trouvé ce que tu me dis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
       'Chargement d'une page Web Google
        IE.Navigate "https://www.ma-comptabilite.com/"
        'Affichage de la fenêtre IE
        IE.Visible = True
        'On pointe le membre Document
        Set IEDoc = IE.document
        'On attend le chargement complet de la page
        WaitIE IE
    Merci de m'aider

  4. #4
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    En Fait, voici mon problème, un peu mieux expliqué, j'espère :
    Dans ma seconde page j'ai ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <ul>										
    	<li class="subdrop3"><a id="journaux" onclick="choix('journaux');" title="Journaux">Journaux</a></li>
    	<li class="subdrop3"><a id="grandlivre" onclick="choix('grandlivre');" title="Grand livre">Grand livre</a></li>
    	<li class="subdrop3"><a id="balanceeditions" onclick="choix('balanceeditions');" title="Balance">Balance</a></li>									
    	<li class="subdrop3"><a id="tableaudebord" onclick="choix('tableaudebord');" title="Tableau de bord">Tableau de bord</a></li>									
    </ul>
    Donc la fonction choix('grandlivre') se trouve dans l'entete. (head)
    Hors l'exemple donné parle bien d'appeler une fonction java script mais dans le BODY.

    Je n'arrive pas à l'appeler par la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IEDoc.parentWindow.execScript "showActu(" & yNumActu & ")", "JavaScript"
    que j'ai transformé en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IEDoc.parentWindow.execScript "choix('grandlivre')", "JavaScript"
    Mais cela ne fonctionne pas

    Merci de tout cœur

  5. #5
    Membre très actif
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mai 2006
    Messages : 174
    Par défaut
    Bon, je répond a mon propre fil de discussion.

    C'est bien parce que la page n'a pas le temps de se charger qu'il y a un problème
    Si je fais un msgbox "toto", (par exemple), à la place du WAIT IE, juste avant la recherche dans la page html, et que je prenne mon temps pour répondre, 4 à 5 secondes,
    ca fonctionne.

    donc j'ai fais un wait() entre les deux, a la place de mon msgbox, et ca marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub Wait() 
       ' Attendre 5 secondes 
       Application.Wait Time + TimeSerial(0, 0, 5) 
      ' Continuer après la pause 
    End Sub

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

Discussions similaires

  1. Interaction avec Internet Explorer via VBA Excel
    Par hamdy06 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/05/2016, 16h32
  2. Probleme d'interaction avec Internet Explorer Via VBA
    Par ThaHardy dans le forum Access
    Réponses: 0
    Dernier message: 03/06/2015, 10h52
  3. Réponses: 3
    Dernier message: 26/05/2011, 13h32
  4. 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, 17h22
  5. [Prototype] Ajax OK avec firefox , KO avec Internet Explorer
    Par bambino13 dans le forum Bibliothèques & Frameworks
    Réponses: 12
    Dernier message: 27/05/2009, 17h37

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