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 :

Valider une popup de confirmation page html [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut Valider une popup de confirmation page html
    Je souhaite savoir comment valider une fenetre popup de validation qui s'ouvre suite à une macro qui clic sur un bouton dans une page html?
    Le code se bloque aprés le click et attend que je valide le "ok" de la popup avant de reprendre l'execution du code!!

    Merci pous vos réponses.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Peut être avec un Sans garantie

  3. #3
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut Valider une popup de confirmation page html
    Merci, mais dans ce cas il ne prend pas la commande sendkey ...
    C'est un peu comme si ru as un msgbox "bonjour". Tant que tu ne cliques pas sur "ok" le code est en pause.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub test
    msgbox"essai"
    sendkey "[~]"
    end sub
    Donc mon probleme est est le même mais sur une fenetre IE de confirmation
    "ok" ou "annuler" ==> le code reste donc bloqué.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaies donc d'introduire cette routine utilisant les API (exemple non testé faute d'avoir le lien du site et le code utilisé)
    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
    '---------------------------------------------------------
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function FindWindowEX Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    Public Declare Function Putfocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
     
    Public Const BT_CLICK = &HF5
     
    Sub CliquePopUp(ByVal TitrePopup As String)
    Dim hwnd_PopUp As Long, hwnd_Ok As Long
    Dim k As Integer
     
    Do
        hwnd_PopUp = FindWindow(vbNullString, TitrePopup)      'ici
        k = k + 1
    Loop While hwnd_PopUp = 0 And k <= 10000
    '----------------------------------------------------------------
    If hwnd_PopUp <> 0 Then
        hwnd_Ok = FindWindowEX(hwnd_PopUp, 0&, "Button", "&OK")    'ou simplement "OK" (caption du bouton)
        Putfocus hwnd_Ok
        SendMessage hwnd_Ok, BT_CLICK, 0&, 0&
    End If
    End Sub
     
    'Pour tester (adapte la caption de ton popup)
    Sub test()
    CliquePopUp "Le titre de ton popup"
    End Sub

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    oui cela serait bien d'avoir le site ... et de savoir comment tu ouvre ta première page internet ( code ?)

  6. #6
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut
    Mon projet est sur un site intranet de mon boulot, mais je viens de trouver un exemple equivalent mais accessible pour un test:
    http://www.ca-anjou-maine.fr/
    ensuite tu vas dans "acceder à mes comptes" (bouton orange en haut)
    et tu tombes sur la page pour rentrer ses infos perso.

    Ne rentres rien dans les cases et tu valide avec "Confirmer" et donc tu as la popup qui s'ouvre!!

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set ElementCol = appIE.Document.getElementsByTagName("INPUT")
     
    For Each btnInput In ElementCol
    If btnInput.Value = "Confirmer" Then
    btnInput.Click' ouveture de la popup Exit For
    End If
    Next btnInput
    le code ce bloque à cet endroit et donc même avec une action sendkey, je n'arrive pas à valider le "OK" de la popup!!

    D'avance merci pour tes recherches!

  7. #7
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut popup
    J'ai mis en place la méthode sendkey mais effectivement c'est un peu barbare
    et ne garantie pas le 100% dans une boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Set ElementCol = navigateur.Document.getElementsByTagName("a")
        navigateur.Visible = True
        For Each link In ElementCol
        If link.innerHTML = "Valider" Then
        link.Focus: SendKeys "{ENTER}{ENTER}"
        SendKeys "{NUMLOCK}", True' remet la touche numlock du clavier active 
        Do While navigateur.Busy
        loop
        Exit For
        End If
        Next link
    Si il y a d'autres solutions qui garantissent une méthode plus fiable??

    Je prends toutes les solutions.....

  8. #8
    Membre confirmé
    Homme Profil pro
    developpeur
    Inscrit en
    Octobre 2011
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : developpeur
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2011
    Messages : 124
    Par défaut re
    Il me semble qu'apres plusieurs essais sur quelques boucles sa fonctionne mais
    si je passe en mode industriel c'est un plantage total...
    La gestion du temps et du click simulé deviens trés difficile...


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

Discussions similaires

  1. rediriger un lien d'une popup vers la page precedente
    Par jonnyboy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/09/2007, 16h59
  2. Maintenir la relation avec une popup, sur plusieurs pages
    Par Ricou13 dans le forum Général JavaScript
    Réponses: 24
    Dernier message: 15/03/2007, 17h52
  3. Réponses: 2
    Dernier message: 22/09/2006, 12h27
  4. [HTML] Rafraichir uniquement une partie d'un page html
    Par andlio dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/03/2006, 15h40
  5. Aide avec une popup et la page parente
    Par iomega dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 08/12/2005, 15h21

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