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 |
Partager