2010-05-26 5 views
2

J'ai une feuille de calcul Excel où l'utilisateur entre certaines données, que je veux stocker dans un fichier texte et télécharger sur un serveur en utilisant FTP. Un site a suggéré d'ajouter une référence à "Microsoft Internet Transfer Control", puis de définir un objet "Inet" pour faire le FTP. Cependant, je suis incapable de trouver une référence avec ce nom dans "Outils -> Références" dans l'éditeur VB. Est-ce que quelqu'un sait d'une solution pour ce problème? Merci d'avance.FTP un fichier texte sur un serveur en utilisant VBA dans Excel

Répondre

5

Voici une solution que j'ai trouvé en faisant une recherche Google -

Public Sub FtpSend() 

Dim vPath As String 
Dim vFile As String 
Dim vFTPServ As String 
Dim fNum As Long 

vPath = ThisWorkbook.Path 
vFile = "YourFile.csv" 
vFTPServ = "********" 

'Mounting file command for ftp.exe 
fNum = FreeFile() 
Open vPath & "\FtpComm.txt" For Output As #fNum 
Print #1, "user ***** *****" ' your login and password" 
Print #1, "cd TargetDir" 'change to dir on server 
Print #1, "bin" ' bin or ascii file type to send 
Print #1, "put " & vPath & "\" & vFile & " " & vFile ' upload local filename to server file 
Print #1, "close" ' close connection 
Print #1, "quit" ' Quit ftp program 
Close 

Shell "ftp -n -i -g -s:" & vPath & "\FtpComm.txt " & vFTPServ, vbNormalNoFocus 

SetAttr vPath & "\FtpComm.txt", vbNormal 
Kill vPath & "\FtpComm.txt" 

End Sub 

Source originale: http://www.access-programmers.co.uk/forums/showthread.php?t=184692

+0

Voici un [ShellWait] (http://access.mvps.org/access/api /api0004.htm) fonctionne pour envelopper l'appel Shell. Il attendra que la commande shell (la fonction ftp ci-dessus) se termine avant de continuer. C'est à partir d'un site d'accès mais devrait fonctionner pour n'importe quel hôte vba. –

Questions connexes