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

Access Discussion :

IE automation - Attente de pop-up


Sujet :

Access

  1. #1
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut IE automation - Attente de pop-up
    Bonjour,

    Toujours dans l'espoir de récupérer des données dispo sous IE, après avoir franchi quelques étapes comme celle-, j'ai maintenant un problème de validation de pop-up.
    Sur ma page, j'ai un bouton pour exporter les données.
    Je clique dessus (via le code) et au bout d'un certain temps (variable, selon les données présentes), j'ai une pop up qui me demande si je veux sauvegarder les données.

    Comment attendre l'apparition de la pop-up ? (IE est toujours busy).

    Merci
    [Access] Les bases du débogage => ici

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    cet exemple permet d'attendre que le nombre de fenetres IE ouvertes change, pour continuer la procédure (testé avec OfficeXP)

    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
     
     'Necessite d'activer la référence "Microsoft Internet Controls"
        Dim winShell As New ShellWindows
        Dim x As Integer
     
        On Error Resume Next
        'Compte le nombre de fenetres IE ouvertes
        '(L'explorateur Windows compris)
        x = winShell.Count
        Debug.Print x & " --> " & Now
     
        '
        'la procédure
        '
     
        'boucle jusqu'à ce que le nombre de fenêtres ouvertes change
        While winShell.Count = x
        DoEvents
        Wend
     
        Debug.Print winShell.Count & " --> " & Now


    bonne soirée
    michel

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Merci pour la réponse, mais malheureusement, ça ne fonctionne pas : le nombre de fenêtre IE ne change pas ...
    [Access] Les bases du débogage => ici

  4. #4
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    tu peux attendre l'apparition d'une popup 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
    Option Compare Database
    Option Explicit
    Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, ByVal lpszWindow As String) As Long
     
    Function testIE()
    Dim objIE As Object
    Dim lPopupHandle As Long
    Dim lItemHwnd As Long
     
    Set objIE = CreateObject("InternetExplorer.application")
    objIE.Visible = True
    objIE.navigate "http://access.developpez.com/faq/"
    Do While objIE.Busy = True
        DoEvents
    Loop
     
    Dim lLink As Variant
    For Each lLink In objIE.Document.links
    If lLink.nameProp = "faqaccess.zip" Then
        lLink.Click
        Exit For
    End If
    Next
     
    While lPopupHandle = 0
        DoEvents
        lPopupHandle = FindWindowEx(0, 0&, "#32770", "File download")
    Wend
     
    Set objIE = Nothing
    End Function
    L'exemple ouvre la page FAQ du site, click sur le bouton "télécharger" et attend l'apparition de la popup.
    "File download" c'est le texte de la popup chez moi.
    Peut être qu'un petit test serait utile au cas où la popup n'apparaît pas au bout de plusieurs secondes...

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 183
    Points : 1 362
    Points
    1 362
    Par défaut
    Merci pour la réponse, mais à partir de la précédente réponse, j'ai trouvé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Set winShell = New ShellWindows
        For i = 0 To winShell.Count - 1
            Debug.Print winShell.Item(i).LocationName
            If winShell.Item(i).LocationName = "Le nom qui va bien" Then
                x = i
            End If
        Next
     
        While winShell.Item(x).Document.ReadyState <> "Complete"
            DoEvents
        Wend
    Et ça a l'air de fonctionner.
    [Access] Les bases du débogage => ici

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

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. [VBA-W] [AUTOMATION]Liste Fonctions/Paramètres
    Par Sunny dans le forum VBA Word
    Réponses: 2
    Dernier message: 05/12/2002, 16h35
  3. recupèrer file d'attente d'impression
    Par magic corp. dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2002, 14h12
  4. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08
  5. Accès à une application ouverte (OLE Automation ?)
    Par PascalB dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/06/2002, 14h39

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