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 :

Piloter la fenetre windows en vba


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Piloter la fenetre windows en vba
    Bonjour,

    Je souhaite recuperer les valeur de bourse sur abs bourse et au moment ou la macro appuie sur telechargement une fenetre Windows s'ouvre pour cliquer sur télécharger sous et je n'arrive pas a trouver le code malgré toutes mes recherches sur le net, Pouvez vous m'aider, voici mon code

    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
    Declare PtrSafe Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Declare PtrSafe Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Public Const MOUSEEVENTF_LEFTDOWN = &H2
    Public Const MOUSEEVENTF_LEFTUP = &H4
    Public Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
    Public Const MOUSEEVENTF_RIGHTUP Public Sub CreerNavigateur()
     
    Dim oNav As SHDocVw.InternetExplorer
    Dim oDoc As MSHTML.HTMLDocument
    Set oNav = New SHDocVw.InternetExplorer
    oNav.Visible = True
    'oNav.navigate "http://google.fr"
    oNav.Navigate "http://www.abcbourse.com/download/historiques.aspx"
    ' Attente avec timeout de 10 s
    If WaitIE(oNav, 10) Then
       ' 10 s écoulées et page non chargée
       MsgBox "Time out!"
    Else
       ' Page chargée, on continue
       Set oDoc = oNav.Document
       ' modification de la Valeur date
       oDoc.getElementsByName("ctl00$BodyABC$strDateDeb")(0).Value = "26/05/2015"    'la variable entre () => afficher la page et faire afficher la source rechercher la variable
       oDoc.getElementsByName("ctl00$BodyABC$strDateFin")(0).Value = "26/05/2016"
     
       'modification du n° de la valeur
       oDoc.getElementsByName("ctl00$BodyABC$txtOneSico")(0).Value = "FR0000120222"
     
       'activer la coche
       oDoc.getElementsByName("ctl00$BodyABC$oneSico")(0).Click
     
       ' Clic sur bouton telecharger
       oDoc.getElementsByName("ctl00$BodyABC$Button1")(0).ClickAs Long = &H10

  2. #2
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour !

    Conformément aux règles du forum, merci de baliser le code (et complet !) via l'icône dédiée #

    Sinon la recherche a certainement été succincte vu les exemples dans les discussions rien que dans ce forum !

    Automatiser l'ouverture d'un fichier compatible Excel depuis le Web (téléchargement)

    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Bien sur j'ai recherche dans ce forum la reponse à ma question et bien sur que j'ai deja lu votre lien proposé mais n'etant pas expert je ne comprends pas ce qu'il faut faire pour que vba puisse piloter la fenetre en faisant enregitrer sous.

    Il serait bien plus constructif de votre part de nous aider a comprendre que de formuler de telle reponse. Je serai expert j'aurai besoin de personne...

    Y a t il quelqu'un qui pourrait m'aider SVP.

  4. #4
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut


    Dans le lien il y a pourtant des explications avec même une étape pour se passer de "piloter" !

    Tout dépend ensuite des réponses obtenues dans les autres forums dans lesquels cette demande a aussi été postée …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Bonjour Marc-L,

    Je travail sur ce code avec Pulco41, on a pourtant testé tous les codes présent dans ton post : http://www.developpez.net/forums/d14...elechargement/

    Et j'ai le même problème que Pulco41, IE s’ouvre, avec les champs remplis, le bouton Télécharger est bien "piloté", le bandeau s'ouvre et propose "Ouvrir", "Enregistrer" avec ses déclinaison "Enregistrer sous" et "Enregistrer et Ouvrir", mais je suis bloqué comme Pulco41, je n'arrive pas a piloter le bouton "Enregistrer sous" de ce bandeau...

    Est ce un problème de version d'IE ? (je suis en version 11 sous Win7, et sous IE de la Win10)
    Est ce un problème de version d'Excel ? (je suis en version 2016 sous Win7, et sous 2010 sous Win10)

    Et comme Pulco41 je pense qu'un forum c'est de l'entraide, afin de nous aider a comprendre, car vous pensez bien que les 4 pages du lien de votre post on les a déjà retourné dans tout les sens.... Et comme dit Pulco41, on serait expert on aurait besoin de personne...

    On vous a posté le code, que manque-t-il ? Quel commande devons nous appliquer....

    @+ Arnaud41

  6. #6
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut

    Comme j'attends toujours la publication du code complet (pourtant réclamée lors de ma primo intervention
    et sans tenant & aboutissant, à quoi bon perdre du temps !) avec maintenant la mise à jour de votre tentative
    selon les explications fournies dans le lien
    (ou ailleurs un peu partout sur le web !)
    (à noter itwoo pour lequel cette contribution a été créée a bien réussi à la suivre et à s'en sortir …)
    (du reste comme vous êtes deux à être censés l'avoir lue, comment l'étape 2 "pilote le bandeau" ?)

    je m'interroge sur la ligne de code n°32 du post initial et j'aimerais bien avoir un retour quant à cette ligne,
    son origine (est-ce un trivial copier / coller ?) ou carrément un lien vers sa source,
    car telle quelle, cette ligne me semble sortir d'un quelconque chapeau !

    Sinon patienter, d'autres pourraient aider (quoique avec les -1 que j'ai pris ils n'auront peut-être pas envie !) …

    Edit : le site ABC propose une API et il y a même un exemple de code en VBA !

    _________________________________________________________________________________________________________
    L'effort fait les forts …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Citation Envoyé par pulco41 Voir le message
    Bonjour,

    Bien sur j'ai recherche dans ce forum la reponse à ma question et bien sur que j'ai deja lu votre lien proposé mais n'etant pas expert je ne comprends pas ce qu'il faut faire pour que vba puisse piloter la fenetre en faisant enregitrer sous.

    Il serait bien plus constructif de votre part de nous aider a comprendre que de formuler de telle reponse. Je serai expert j'aurai besoin de personne...

    Y a t il quelqu'un qui pourrait m'aider SVP.
    Citation Envoyé par Arnaud41
    Et comme Pulco41 je pense qu'un forum c'est de l'entraide, afin de nous aider a comprendre, car vous pensez bien que les 4 pages du lien de votre post on les a déjà retourné dans tout les sens...
    Quelle salaud ce Marc-L, vous posez une question et il ose vous suggérer de lire un post qui parle du même sujet et dont l'auteur a su résoudre le problème, sujet sur lequel il y a de nombreuses explications sur le code point par point. Vraiment pas constructif. En plus en tant qu'expert éminent sénior il aurait du regarder dans sa boule de cristal pour savoir que vous l'aviez lu son post c'est tellement évident.
    Nan mais c'est vrai quoi c'est un forum d'entraide et on est pas expert alors on exige un code complet et commenté et dans l'heure si possible.

    Vous avez posté du code c'est bien mais "le code marche pas" c'est très clair comme erreur, pour avoir plus de réponses il faudrait peut être expliciter un peu plus, par exemple y a-t-il une erreur lors de l’exécution du code si oui laquelle et a quelle ligne
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Génial je vous adore :-)

    Le code posté fonctionne a merveille, si ce n'est que l'on arrive pas a coder le pilotage du bandeau...

    Je repost le code que l'on a fait :

    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
    Public Sub CreerNavigateur()
    Dim oNav As SHDocVw.InternetExplorer
    Dim oDoc As MSHTML.HTMLDocument
    Set oNav = New SHDocVw.InternetExplorer
    oNav.Visible = True
    'oNav.navigate "http://google.fr"
    oNav.Navigate "http://www.abcbourse.com/download/historiques.aspx"
    ' Attente avec timeout de 10 s
    If WaitIE(oNav, 10) Then
       ' 10 s écoulées et page non chargée
       MsgBox "Time out!"
    Else
       ' Page chargée, on continue
       Set oDoc = oNav.Document
       ' modification de la Valeur date
       oDoc.getElementsByName("ctl00$BodyABC$strDateDeb")(0).Value = "26/05/2015"    'la variable entre () => afficher la page et faire afficher la source rechercher la variable
       oDoc.getElementsByName("ctl00$BodyABC$strDateFin")(0).Value = "26/05/2016"
     
       'modification du n° de la valeur
       oDoc.getElementsByName("ctl00$BodyABC$txtOneSico")(0).Value = "FR0000120222"
     
       'activer la coche
       oDoc.getElementsByName("ctl00$BodyABC$oneSico")(0).Click
     
       ' Clic sur bouton telecharger
       oDoc.getElementsByName("ctl00$BodyABC$Button1")(0).Click
    PS on a essayé le "SendKeys" avec 2x "TAB", 2x "Flèche vers le bas" et "Entrer" ;-)

    Par contre je ne sais pas si on a encore le code, car on en a tellement essayé...

    Ce qu'on demande dans un forum, c'est pas que vous veniez taper sur mon clavier pour nous le faire, mais une aide tant qu'a la fonction a utiliser avec de l'aide afin d'apprendre....

    @+ Arnaud

    PS : l'API sur ABC Bourse, déjà testé et cela ne réponds pas a nos attentes.

    Et pour ce qui est des -1, perso c'est pas moi ;-)

  9. #9
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Code toujours incomplet car des erreurs à la compilation !
    Il suffit pourtant de tester de votre côté avant de poster, pas compliqué …

    Pourtant l'API renvoie exactement les données dont vous avez besoin ! (cf code VBA du site … )
    Là nous avons besoin d'une explication : en quoi ne répond-t-il pas à vos attentes ?
    En fait l'API renvoie les mêmes données obtenues par la requête Web comme dans la troisième étape de mon lien.
    Dans l'attente enfin d'une présentation claire & exhaustive de ce que vous avez réellement besoin
    car on ne pourrait proposer mieux que l'API propre à ce site ‼ Surtout qu'il est abordable …

    La fonction vous l'avez déjà : ce n'est pas du pilotage souris mais du pilotage clavier
    donc via SendKeys et temporisation liées à une observation certaine et sérieuse (comme indiqué au début de mon lien) …

    Donc il suffit déjà de voir au clavier si c'est possible et quelle est la séquence de touches et la temporisation nécessaires …
    (Il pourrait y avoir des différences d'un ordinateur à un autre.)
    Donc après l'explication digne de ce nom du besoin (avec tenants & aboutissants),
    dans l'attente d'un retour de vos tests clavier sur vos différentes configurations …

    Comme piloter IE est ce qu'il y a de moins fiable, envisager la requête utilisée par le navigateur
    en l'observant via son utilitaire d'inspection, bien plus fiable et plus rentable, enfin selon le besoin réel …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Voici le format Excel, chez moi cela fonctionne...

    Je vois pas ou il y a une erreur dans le code déjà fait ?


    logiciel de recup jmb.xlsm

  11. #11
    Membre confirmé
    Homme Profil pro
    conseiller
    Inscrit en
    Janvier 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : conseiller
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 367
    Points : 649
    Points
    649
    Par défaut
    Bonsoir,
    d'après ce que je comprends le problème réside dans le fait que le demandeur cherche à faire apparaître la boîte de dialogue Enregistrer sous proposée dans le bandeau de téléchargement.

    Si c'est le cas, à tester :
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Option Explicit
    #If Win64 Then
      Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
      Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
      Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
      (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
      Declare PtrSafe Function WaitMessage Lib "user32" () As Long
    #Else
      Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
      Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
      Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
      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
      Declare Function WaitMessage Lib "user32" () As Long
    #End If
     
     
    Const VK_TAB As Long = &H9
    Const KEYEVENTF_KEYUP As Long = &H2
    Const VK_RETURN As Long = &HD
    Const VK_DOWN As Long = &H28
     
     
    Public Sub CreerNavigateur()
    Dim oNav As SHDocVw.InternetExplorer
    Dim oDoc As MSHTML.HTMLDocument
    Set oNav = New SHDocVw.InternetExplorer
    oNav.Visible = True
    'oNav.navigate "http://google.fr"
    oNav.Navigate "http://www.abcbourse.com/download/historiques.aspx"
    ' Attente avec timeout de 10 s
    'If WaitIE(oNav, 10) Then
    'If WaitIE(oNav) Then
    '   ' 10 s écoulées et page non chargée
    '   MsgBox "Time out!"
    'Else
     
     
    Do Until oNav.ReadyState = READYSTATE_COMPLETE
      DoEvents
    Loop
     
     
    ' Page chargée, on continue
    Set oDoc = oNav.Document
    ' modification de la Valeur date
    oDoc.getElementsByName("ctl00$BodyABC$strDateDeb")(0).Value = "26/05/2015"    'la variable entre () => afficher la page et faire afficher la source rechercher la variable
    oDoc.getElementsByName("ctl00$BodyABC$strDateFin")(0).Value = "26/05/2016"
     
     
    'modification du n° de la valeur
    oDoc.getElementsByName("ctl00$BodyABC$txtOneSico")(0).Value = "FR0000120222"
     
     
    'activer la coche
    oDoc.getElementsByName("ctl00$BodyABC$oneSico")(0).Click
     
     
    ' Clic sur bouton telecharger
    oDoc.getElementsByName("ctl00$BodyABC$Button1")(0).Click
    'End If
     
     
     
    '---------------- Partie ajoutée -----------------------------
    '----- Attendre l'apparition du bandeau de téléchargement (car le délai d'attente peut être variable en fonction du site) pour la valider ---
    Dim hIEFrame As Long, hWnDbandeau As Long
     
     
    hIEFrame = FindWindow("IEFrame", vbNullString)
     
     
    'on patiente le temps que le bandeau apparaisse
    Do
      WaitMessage
      hWnDbandeau = FindWindowEx(hIEFrame, 0&, "Frame Notification Bar", vbNullString)
      DoEvents
    Loop While hWnDbandeau = 0
     
     
    Sleep 500
     
     
    'raccourcis clavier pour ouvrir la boîte de dialogue Enregistrer sous
    keybd_event VK_TAB, 0, 0, 0&
    keybd_event VK_TAB, 0&, KEYEVENTF_KEYUP, 0&
    Sleep 100
    keybd_event VK_TAB, 0, 0, 0&
    keybd_event VK_TAB, 0&, KEYEVENTF_KEYUP, 0&
    Sleep 100
    keybd_event VK_DOWN, 0, 0, 0&
    keybd_event VK_DOWN, 0&, KEYEVENTF_KEYUP, 0&
    Sleep 100
    keybd_event VK_DOWN, 0, 0, 0&
    keybd_event VK_DOWN, 0&, KEYEVENTF_KEYUP, 0&
    Sleep 100
    keybd_event VK_RETURN, 0, 0, 0&
    keybd_event VK_RETURN, 0&, KEYEVENTF_KEYUP, 0&
    Sleep 100
    End Sub
    Ce qui donne chez moi
    Nom : screenshot.12.png
Affichages : 2089
Taille : 143,4 Ko


    Je n'ai pas regardé le code proposé (juste inclus la boucle de WaitIE dans la sub).
    On peut éventuellement simplifier la partie permettant de gérer le bandeau de téléchargement.

    Ceci dit il faudrait tout de même explorer le fait d'utiliser une requête xmlhttp ce qui simplifierait grandement les choses (cf. les exemples sur le forum).

    A+

  12. #12
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    @Arnaud41 :
    Et le clavier cela donne quoi ? Quelle est la séquence de touches de votre côté ?
    Et puis il y a deux choix, attendons-nous une consultation avec Mme Irma pour savoir lequel choisir ‼

    Désolé n'étant ni aruspice ni extispice et encore moins haruspice,
    je ne verse donc pas dans l'aruspicine ni dans l'extispicine pas plus que dans l'haruspicine !
    Sans tenants et aboutissants … Trop compliqué d'expliquer ? Ok, trop compliqué de proposer quoique ce soit !
    Comme quoi une présentation digne de ce nom est nécessaire dès l'ouverture d'une discussion …

    Salut davido84 !
    Déjà expliqué pour la requête si vraiment ils ont lu mon lien …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  13. #13
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Marc-L sans te manquer de respect, toi le grand maitre des VBA Excel, je trouve que vous êtes un peu irrespectueux, oh mon grand maitre vénéré.....

    Ça suffit maintenant, ma patience a quelques limites ;-)


    Lisez mes posts précédant ! ! ! !

    Ne sont ils pas assez clair ?

    Citation Envoyé par Marc-L Voir le message
    Et le clavier cela donne quoi ? Quelle est la séquence de touches de votre côté ?
    Citation Envoyé par Arnaud41 Voir le message
    PS on a essayé le "SendKeys" avec 2x "TAB", 2x "Flèche vers le bas" et "Entrer" ;-)
    Citation Envoyé par Marc-L Voir le message
    Comme quoi une présentation digne de ce nom est nécessaire dès l'ouverture d'une discussion …
    Citation Envoyé par Arnaud41 Voir le message
    Et j'ai le même problème que Pulco41, IE s’ouvre, avec les champs remplis, le bouton Télécharger est bien "piloté", le bandeau s'ouvre et propose "Ouvrir", "Enregistrer" avec ses déclinaison "Enregistrer sous" et "Enregistrer et Ouvrir", mais je suis bloqué comme Pulco41, je n'arrive pas a piloter le bouton "Enregistrer sous" de ce bandeau...
    Ce n'est pas assez clair ???

    La je comprends plus....

    On demande de l'aide, et vous nous envoyez dans les cordes !

    Je suis pas très bon en VBA, c'est vrai et je le reconnais, mais je me donne les moyens d'essayer au moins !

    J'ai d’autre domaine de compétence ou je maitrise a 200%, seriez vous prêt a recevoir les mêmes réponses que les vôtres sur un de vos posts dont je maitrise le sujet ? Genre allez voir mon post que je vous ai mis en lien (qu'on a d’ailleurs retourné dans tous les sens) ? Je ne crois pas que seriez prêt a ça...

    Maintenant si vous voulez pas nous aidez a comprendre la mécanique du pilotage de ce bandeau, allez sur d'autres posts et laissez tomber celui ci, je préfère me passer de vous plutôt que d'avoir des réponses non constructive sur mon désir d'apprendre !

    Merci d'avoir pris le temps de me lire. Et comme vous pouvez le voir je suis courtois en plus ;-)

    @+ Arnaud

  14. #14
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par davido84 Voir le message
    Bonsoir,
    d'après ce que je comprends le problème réside dans le fait que le demandeur cherche à faire apparaître la boîte de dialogue Enregistrer sous proposé dans le bandeau de téléchargement.
    Je n'ai pas regardé le code proposé (juste inclus la boucle de WaitIE dans la sub).
    On peut éventuellement simplifier la partie permettant de gérer le bandeau de téléchargement.

    Ceci dit il faudrait tout de même explorer le fait d'utiliser une requête xmlhttp ce qui simplifierait grandement les choses (cf. les exemples sur le forum).

    A+
    Merci Davido84, cela fonctionne, maintenant je vais étudier le code pour comprendre. ;-)

    Nous reste plus qu'a construire la suite.

    Merci encore a toi

  15. #15
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour à tous,

    J'ai osé essayer le fichier joint avec le code des demandeurs. Il fonctionne chez-moi sauf pour une chose. Puisque j'ai un programme externe (File Download Manager) pour gérer mes téléchargements, et qu'il prend le pas sur IE (parce que l'ai paramétré comme cela), il faut confirmer dans FDM. Si, dans FDM, j'annule le téléchargement, c'est le téléchargement d'IE qui prend le relais et la boîte de dialogue du téléchargement est affichée. Je clique sur enregistrer et tout se termine sans problème, avec l'enregistrement dans mon dossier de téléchargements. (Mais, rendu là, s'il faut simuler/générer le clic sur le bouton Enregistrer, je passe la main. Même chose pour s'adapter aux différentes versions d'IE ou de Windows ou d'afficher une boîte de dialogue "Enregistrer Sous... , si le problème vient de là)

    Windows 10, IE 11. Excel 2010 64 bits

    @Marc-L

    Si tu as un Office à 32 bits, il se pourrait qu'une partie des horreurs que tu as chez-vous soit dûes aux déclarations des fonctions de l'API qui ont été adaptées à la sauce 64 bits. Tu peux réessayer en enlevant les PtrSafe dans les instructions Declare.

    P.S. Chez moi, si je clique sur la flèche du bouton enregistrer, il y a une nouvelle boîte de dialoque qui donne accès à Enregistrer sous...
    Si cela peut en inspirer d'autres...

    P.P.S. Après avoir tout relu, je n'ai pas vraiment fait avancer la discussion. Ceci dit, au lieu de me casser la tête, je me serais contenté de laisser le téléchargement par défaut avec un simple clic manuel et une deuxième petite macro pour récupérer le fichier dans le dossier par défaut et le déplacer/renommer au gré de l'utilisateur. Mais bon, c'est juste moi...
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Merci Davido84 pour ta réponse complète et qui fonctionne. Ton code est compréhensif pour tout le monde, au moins tu as fait avancer les choses

    Contrairement à Marc-L qui vit dans un autre monde (il doit être surement ingénieur informaticien, d'ailleurs il y avait pas une chanson qui parle de ce métier !!!!!!!).

  17. #17
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Encore une fois la question n'a pas été comprise (à défaut de celles où nous attendons toujours des réponses !) …
    Je ne demandais pas ce que vous avez essayé mais quelle est la séquence manuelle fonctionnant de votre côté !
    Car du mien aucun souci avec juste une instruction SendKeys le tout en moins de vingt lignes de code …

    Quant à l'import direct dans une feuille de calculs via une requête, cela a l'air encore plus simple que sur EuroNext !
    (plus fiable et bien plus rapide qu'émuler souris ou clavier …)
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  18. #18
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Bonjour Marc-L,

    Je pense qu'il y a des incompréhensions de part et d'autre. Je te remercie quand même pour ton investissement.

    Maintenant on avance, et on commence a comprendre ce qui est bien la le principal.

    Qu'entend tu, par :
    Citation Envoyé par Marc-L Voir le message
    Quant à l'import direct dans une feuille de calculs via une requête, cela a l'air encore plus simple que sur EuroNext !
    (plus fiable et bien plus rapide qu'émuler souris ou clavier …)
    Davido84 qu'entend tu, par :
    Citation Envoyé par davido84 Voir le message
    Ceci dit il faudrait tout de même explorer le fait d'utiliser une requête xmlhttp ce qui simplifierait grandement les choses (cf. les exemples sur le forum).
    Pouvez vous développer un peu afin de nous aiguiller un peu ?

    Merci les gars ;-)

  19. #19
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut


    C'est justement la finalité du lien, tout y est !

    Tout dépend aussi du but cherché, d'où mes demandes répétées de tenants et aboutissants
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  20. #20
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loir et Cher (Centre)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 69
    Points : 41
    Points
    41
    Par défaut
    Salut,

    En fait le but c'est de récupérer l'historique de toutes les valeurs, pour les traiter dans Excel.

    @+ Arnaud

Discussions similaires

  1. [FAQ VB/VBA] Piloter MSN et Windows Messenger
    Par SilkyRoad dans le forum Contribuez
    Réponses: 8
    Dernier message: 03/02/2010, 16h13
  2. variable globale + fenetre de debogage vba
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 08/09/2005, 11h32
  3. [newbie] piloter une fenetre DOS
    Par GroGorZ dans le forum C++
    Réponses: 6
    Dernier message: 23/10/2004, 17h26
  4. Fenetre windows
    Par casafa dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 25/07/2003, 17h18
  5. [VB6] Listage des fenêtres windows
    Par gg78 dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/05/2003, 11h36

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