Bonjour à tous,
Comme cela fait un certain temps que je cherche une solution à mon problème, je m'en remets à vous
Je cherche un moyen de créer une macro qui permettrait, à partir d'un fichier excel A:
1/ d'ouvrir Internet Explorer,
2/ de se connecter à un site avec un pseudo/mot de passe,
3/et de faire un export de données du site à partir de critères définis (le site permet d'exporter un nouveau fichier excel B avec certaines données que je souhaite ensuite copier et coller dans le fichier excel initial A).
Jusqu'à présent, j'ai réussi les étapes 1 et 2, mais je bloque à la 3: j'ai sélectionné les critères de recherche correctement sur le site internet, et j'ai réussi à cliquer sur le bouton "OK" qui permet de lancer l'extraction, mais là les choses se corsent:
Quand on clique sur ce bouton OK, une nouvelle page internetexplorer s'ouvre, qui contient une boîte de dialogue IE "téléchargement de fichiers" dans laquelle il faut cliquer sur "Ouvrir". Mais impossible de pointer sur cette boîte de dialogue et d'actionner le bouton
J'ai trouvé sur le web divers bouts de code utilisant les API findwindow, findwindowEx... mais qui ne marche pas
(le bout de code suivant, qui permet de récupérer le handle de la fenêtre "téléchargement de fichier", me retourne toujours "window not found"):
(NB: j'ai pris soin avant de déclarer la fonction findwindow)
J'ai essayé en changeant le nom de la fenêtre, "Téléchargement de fichiers", Téléchargement de fichier", "File Download"... il ne la trouve pas.
J'ai essayé également de pointer sur la seconde fenêtre IE qui s'affiche, et de faire un sendkeys pour sélectionner le bouton "ouvrir", mais sans succès:
Sinon, je me demande s'il n'existe pas un moyen d'éviter de passer par cette seconde fenêtre IE qui finit par m'empoisonner la vie . Sur le bouton OK de la première fenêtre, il y a un attribut HTML "onclick" :
je pourrais peut-être en tirer profit, mais je ne sais pas comment?
J'ai beau chercher, je ne trouve pas..
Je vous remercie d'avance de vos réponses, et n'hésitez pas à me signaler si je n'ai pas été assez claire dans ma demande!
Merci
Comme cela fait un certain temps que je cherche une solution à mon problème, je m'en remets à vous
Je cherche un moyen de créer une macro qui permettrait, à partir d'un fichier excel A:
1/ d'ouvrir Internet Explorer,
2/ de se connecter à un site avec un pseudo/mot de passe,
3/et de faire un export de données du site à partir de critères définis (le site permet d'exporter un nouveau fichier excel B avec certaines données que je souhaite ensuite copier et coller dans le fichier excel initial A).
Jusqu'à présent, j'ai réussi les étapes 1 et 2, mais je bloque à la 3: j'ai sélectionné les critères de recherche correctement sur le site internet, et j'ai réussi à cliquer sur le bouton "OK" qui permet de lancer l'extraction, mais là les choses se corsent:
Quand on clique sur ce bouton OK, une nouvelle page internetexplorer s'ouvre, qui contient une boîte de dialogue IE "téléchargement de fichiers" dans laquelle il faut cliquer sur "Ouvrir". Mais impossible de pointer sur cette boîte de dialogue et d'actionner le bouton
J'ai trouvé sur le web divers bouts de code utilisant les API findwindow, findwindowEx... mais qui ne marche pas
(le bout de code suivant, qui permet de récupérer le handle de la fenêtre "téléchargement de fichier", me retourne toujours "window not found"):
Code:
Dim Ret As Long
Ret = FindWindow(vbNullString, "Téléchargement de fichiers")
If Ret <> 0 Then
MsgBox "Window Found"
Else
MsgBox "Window Not Found"
End If
J'ai essayé en changeant le nom de la fenêtre, "Téléchargement de fichiers", Téléchargement de fichier", "File Download"... il ne la trouve pas.
J'ai essayé également de pointer sur la seconde fenêtre IE qui s'affiche, et de faire un sendkeys pour sélectionner le bouton "ouvrir", mais sans succès:
Code:
[B] Dim winShell As New ShellWindows
On Error Resume Next
For Each IE In winShell
If IE.LocationURL = "www.siteinternet.com" Then
IE.Visible = True
'IE.Quit 'option pour les fermer
End If
Next IE
SendKeys "{TAB}", True
SendKeys "{TAB}", True
SendKeys "{ENTER}", True[/B]
Sinon, je me demande s'il n'existe pas un moyen d'éviter de passer par cette seconde fenêtre IE qui finit par m'empoisonner la vie . Sur le bouton OK de la première fenêtre, il y a un attribut HTML "onclick" :
Code:
document.forms['Criteria'].action='download/export_report.asp?ID=641'; document.forms['Criteria'].target='_blank'
J'ai beau chercher, je ne trouve pas..
Je vous remercie d'avance de vos réponses, et n'hésitez pas à me signaler si je n'ai pas été assez claire dans ma demande!
Merci
Dernière édition: