VBA - Gestion de la fenêtre windows "Téléchargement de fichier"

VBA - Gestion de la fenêtre windows "Téléchargement de fichier" - VB/VBA/VBS - Programmation

Marsh Posté le 16-08-2011 à 14:54:31    

Bonjour,
Je suis novice dans l'utilisation de VBA et j'aurai besoin, pour un projet, de télécharger un fichier via Internet Explorer en utilisant VBA. J'ai pu voir qu'il existait différente méthode pour télécharger un fichier mais je suis contraint de passer par la fenêtre de téléchargement Windows et je n'arrive pas à cliquer sur le bouton Enregistrer.
 
voici mon code :
Option Explicit
 

Code :
  1. 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
  2. Sub Download()
  3. Dim IE As Object
  4. Dim acceuil, baseline As String
  5. Dim lPopupHandle As Long
  6. Dim hawnd As Long
  7. Dim hawnd_button As Long
  8. Set IE = CreateObject("InternetExplorer.Application" )
  9. IE.Visible = True
  10.     acceuil = "http://www.mon-site.fr"
  11.     baseline = "http://www.mon-site.fr/consulterHistoDossier.do?idDossier=162216&typeAction=enregistrerDossier" 'fait directement apparaitre la fenêtre de téléchargement
  12.     IE.Navigate acceuil
  13.     IE.Visible = True
  14.    
  15.     While IE.Busy
  16.     Wend
  17.    
  18.     IE.Navigate baseline
  19.        
  20. While lPopupHandle = 0
  21.     DoEvents
  22.     lPopupHandle = FindWindowEx(0, 0&, "#32770", "Téléchargement de fichier" )
  23. Wend
  24. hawnd = FindWindowEx(0, 0&, "#32770", "Téléchargement de fichier" )
  25. MsgBox hawnd
  26. hawnd_button = FindWindowEx(hawnd, 0, "Button", "En&registrer" )
  27. MsgBox hawnd_button


 
 
J'obtiens bien le Handle de mon bouton (en espérant utiliser les bons termes) mais je n'arrive pas a cliquer dessus...
Je me suis basé sur le code trouvé ici : http://www.developpez.net/forums/d [...] er-msgbox/
Si vous pouviez aussi m'aider pour choisir le dossier 'tempo' et lancer le téléchargement, cela m'aiderai beaucoup.
Merci d'avance.

Reply

Marsh Posté le 16-08-2011 à 14:54:31   

Reply

Marsh Posté le 16-08-2011 à 18:40:22    

Salut, de la même source mais d'un auteur différent, à adapter à ton contexte


Option Explicit
 
Private Declare Function URLDownloadToFile Lib "urlmon" _
                                           Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
                                                                       ByVal szFileName As String, ByVal dwReserved As Long, ByVal _
                                                                                                                             lpfnCB As Long) As Long
 
Private Const ERROR_SUCCESS As Long = 0
 
Sub LancementProcedure()
    DownloadFile "http://www.leSite/fichier.txt", "C:\fichier.txt"
End Sub
 
Public Function DownloadFile(ByVal sURL As String, ByVal sLocalFile As String) As Boolean
Dim lngRetVal As Long
    DownloadFile = URLDownloadToFile(0&, sURL, sLocalFile, 0&, 0& ) = ERROR_SUCCESS
End Function
 


Message édité par kiki29 le 16-08-2011 à 18:42:31

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 16-08-2011 à 19:55:20    

J'étais déjà tombé sur cette solution. Mais lorsque que je l'utilise, j'obtiens une page de code en PHP et non mon fichier zip. J'ai bien essayer de trouver le lien direct du fichier dans ce code, mais il n'est pas dedans. De plus, je pense que ce n'est pas possible car le fichier généré contient dans son nom la date et l'heure où j'ai cliquer sur télécharger. Voilà pourquoi ma seule solution (à mon avis) est donc de passer par le contrôle de la fenêtre de téléchargement Windows...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed