Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean
Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hConnect As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Boolean
Sub TestCopie()
Dim bConnexion As Boolean, bFtp As Boolean, bCopie As Boolean, sSite As String, sDossier As String, sLogin As String, sMdp As String, sFichier As String, sPathCopie As String
'variables à adapter
sSite = "ftp1.meteomedia.ch"
sDossier = "" 'Apparemment, dans ton exemple, il faut laisser cette variable vide
sLogin = "" 'Utilisateur
sMdp = "" 'Mot de passe
sFichier = "eon-france_prognose_" & Format(Now, "yyyymmdd") & ".csv"
sPathCopie = "C:\" & sFichier
'récupérer le fichier
bConnexion = InternetOpen("", 1, "", "", 0)
If bConnexion Then
bFtp = InternetConnect(bConnexion, sSite, 21, sLogin, sMdp, 1, 0, 0)
If FtpSetCurrentDirectory(bFtp, sDossier) Then
bCopie = FtpGetFile(bFtp, sFichier, sPathCopie, False, 0, &H0, 0)
End If
End If
If Not bCopie Then MsgBox "Erreur: le fichier n'a pas été copié."
End Sub