Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_SERVICE_HTTP = 3
Private Const INTERNET_INVALID_PORT_NUMBER = 0

Declare PtrSafe 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 PtrSafe 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 PtrSafe Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _
"FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
ByVal lpszDirectory As String) As Boolean

Declare PtrSafe Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Boolean

Declare PtrSafe Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

Sub ExportFtp()

On Error GoTo Err_Sub
   Dim Login As String, mot_passe As String
   Dim HwndConnect As Long
   Dim HwndOpen As Long, MyFile
   Dim CheminLocal As String
   Dim SiteFTP As String
   Dim fichier As String
   Mode = &H8000000
   CheminLocal = ThisWorkbook.Path & "\"
  fichier = "export-EBP.csv"
   ' On récupère l'adresse IP dans les CGR
   ' Définir l'adresse IP - ICI - silverwolfmusic.fr
  SiteFTP = "xxxxxxxxxxxxxxxxx"
  Login = "yyyyyyyyyyyyyyyyyyyyyy"
  mot_passe = "zzzzzzzzzzzzzzzzzz"
   ' Lance l'ouverture du site ftp
  HwndOpen = InternetOpen("swmFTP", 0, vbNullString, vbNullString, 0)
   
   'Connection au site ftp
  HwndConnect = InternetConnect(HwndOpen, SiteFTP, 21, Login, mot_passe, INTERNET_SERVICE_HTTP, Mode, 0)
  MsgBox HwndConnect
   If HwndConnect = 0 Then
        FlagFTP = 1
        InternetCloseHandle HwndConnect
        InternetCloseHandle HwndOpen
        Exit Sub
   End If
   
   'positionnement du curseur dans le répertoire
  Dir_OK = FtpSetCurrentDirectory(HwndConnect, "/")
   MsgBox Dir_OK
   Transf_OK = FtpPutFile(HwndConnect, CheminLocal & fichier, fichier, &H0, 0)
MsgBox Transf_OK
   ' Ferme le handle de connection puis celui d'Internet
  InternetCloseHandle HwndConnect
   InternetCloseHandle HwndOpen
  
   Exit Sub
  
Err_Sub:
   MsgBox "Une erreur c'est produite, arrêt de la macro"
   InternetCloseHandle HwndConnect 'Ferme la connection
  InternetCloseHandle HwndOpen 'Ferme internet
  FlgErr = True
   End
End Sub

