Bonjour à tous,
je voudrais pouvoir envoyer un fichier sur un serveur FTP avec une macro VBA.
Quelqu'un sait comment s'y prendre?
Bonjour à tous,
je voudrais pouvoir envoyer un fichier sur un serveur FTP avec une macro VBA.
Quelqu'un sait comment s'y prendre?
Bonjour
Peut-être avec cela : Envoi/réception de fichier sur un serveur FTP
Philippe
Merci beaucoup pour la source phillipe.
J'ai quand même un peu de mal à l'utiliser :/.
Voici le code que j'ai généré :
avec les variables initialisées avant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'J'ajoute le fichier sur le serveur FTP*********************************************************** 'ouverture internet HwndOpen = InternetOpen("calendrier.ventana-aerospace.fr", 0, vbNullString, vbNullString, 0) 'Connection au site ftp HwndConnect = InternetConnect(HwndOpen, "calendrier.ventana-aerospace.fr", 21, "user", "pass", 1, 0, 0) 'positionnement du curseur dans le répertoire FtpSetCurrentDirectory HwndConnect, "httpdocs/FTP_content/" FtpPutFile HwndConnect, "C:\temp\AgendaExport.csv", "Agenda_" & Application.GetNamespace("MAPI").CurrentUser & ".csv", &H0, 0 InternetCloseHandle HwndConnect 'Ferme la connection InternetCloseHandle HwndOpen 'Ferme internet '*****************************************************************************************************************
et les declare :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 'Déclaration des variables pour l'envoi par FTP Dim HwndConnect As Long Dim HwndOpen As Long
L'exécution se fait, je n'ai pas de message d'erreur, mais le fichier n'est pas transféré sur le site FTP.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 '------------------- 'Déclaration des API '------------------- Private Declare Function InternetCloseHandle Lib "wininet.dll" _ (ByVal hInet As Long) As Integer Private 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 Private 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 Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias _ "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, _ ByVal lpszDirectory As String) As Boolean Private 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 Private Declare Function FtpPutFile Lib "wininet.dll" Alias _ "FtpPutFileA" (ByVal hConnect As Long, ByVal lpszLocalFile As String, _ ByVal lpszNewRemoteFile As String, ByVal dwFlags As Long, _ ByVal dwContext As Long) As Boolean
user et pass sont correcte.
Qu'ai je mal compris?
Arf non c'est moi qui ai mal rentré le user :/
J'ai pourtant vérifié ><
Désolé et encore merci pour votre aide, ce forum est génial.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager