Bonjour a tous !
Bon voila je sais pas si ça se fait mais je relance un sujet de 2013 ... je ne pensse pas qu'il est suivis :
https://www.excel-downloads.com/threads/vba-copie-un-fichier-vers-un-dossier-ftp.217730/
- J'ai réussi a uploader un fichier grâce au code de motard59 qui fonctionne parfaitement :
Impossible par contre d'uploader tout le contenu d'un dossier ( ou tous un dossier complet )
j'ai essayer ceci :
afin d'uploader tout le dossier TEMP mais sans succes ! si quelqun veux bien m'aider a adapter ce même code.. j'ai galérer a le faire fonctionne et j'y tiens maintenant en plus pas besoin de référence supplémentaire ...
Bon voila je sais pas si ça se fait mais je relance un sujet de 2013 ... je ne pensse pas qu'il est suivis :
https://www.excel-downloads.com/threads/vba-copie-un-fichier-vers-un-dossier-ftp.217730/
- J'ai réussi a uploader un fichier grâce au code de motard59 qui fonctionne parfaitement :
VB:
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 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 FtpSetCurrentDirectory Lib "wininet.dll" Alias _
"FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _
ByVal lpszDirectory As String) As Boolean
Declare 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 Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Sub ftp()
'transfère des fichiers du disque local vers un serveur ftp (upload, mode passif)
Dim Start As Single
'PARAMETRES************************
fichier = "C:\Users\BEN\Desktop\TEMP\1.jpg"
login = "xxxxxxxxxxxxxxx"
mot_passe = "xxxxxxxxxxxxxxxxx"
rép = "/web/FTP/TEMP"
bin_asc = &H2 '(&H1 ascii, &H2 binaire)
Mode = &H8000000 '(&H8000000 mode passif, 0 mode actif)
'**********************************
'lancer le transfert
internet_ok = InternetOpen("PutFtpFile", 1, "", "", 0)
If internet_ok = 0 Then
MsgBox "connection internet impossible"
Exit Sub
End If
ftp_ok = InternetConnect(internet_ok, "ftp.xxxxxxxxxxxxx.com", 21, login, mot_passe, 1, Mode, 0)
If ftp_ok = 0 Then
MsgBox "connection impossible"
Exit Sub
End If
sélect_rép = FtpSetCurrentDirectory(ftp_ok, rép)
If sélect_rép = 0 Then
MsgBox "impossible de trouver le répertoire "
Exit Sub
End If
'nom du fichier sans le chemin
nomfich = fichier
Do While InStr(nomfich, "\") > 0
nomfich = Right(nomfich, Len(nomfich) - InStr(nomfich, "\"))
Loop
'transférer le fichier
succès = FtpPutFile(ftp_ok, fichier, nomfich, bin_asc, 0)
If succès Then
résult = nomfich & " a été transféré "
Else
résult = nomfich & " n'a pas pu être transféré"
End If
'fermer les pointeurs, ménage
InternetCloseHandle ftp_ok
InternetCloseHandle internet_ok
'annoncer le résultat de l'opération
If résult <> "" Then
UserForm3.Label1 = résult
UserForm3.Show
'MsgBox résult
Else
UserForm3.Label1 = "aucun fichier transféré"
UserForm3.Show
'MsgBox "aucun fichier transféré"
End If
End Sub
Impossible par contre d'uploader tout le contenu d'un dossier ( ou tous un dossier complet )
j'ai essayer ceci :
VB:
'PARAMETRES************************
fichier = "C:\Users\BEN\Desktop\TEMP"
afin d'uploader tout le dossier TEMP mais sans succes ! si quelqun veux bien m'aider a adapter ce même code.. j'ai galérer a le faire fonctionne et j'y tiens maintenant en plus pas besoin de référence supplémentaire ...