File Upload auf FTP von Excel

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mono.

    File Upload auf FTP von Excel

    Hallo, ich habe die Aufgabe gekriegt, eine generierte (und gepackte) Datei über FTP zu versenden. Per VBA Makro.

    Hier die Subroutine, an der ich momentan scheitere:


    Visual Basic-Quellcode

    1. Public Sub FtpSend(ByVal vFile As String, ByVal vFTPServ As String)
    2. Dim vPath As String: vPath = ThisWorkbook.Path
    3. 'Dim vFile As String
    4. 'Dim vFTPServ As String
    5. Dim fNum As Long
    6. 'vFile = "YourFile.csv"
    7. 'vFTPServ = "********"
    8. Dim SplitArr() As String
    9. SplitArr() = Split(vFile, "\")
    10. 'Mounting file command for ftp.exe
    11. fNum = FreeFile()
    12. Open vPath & "\FtpComm.bat" For Output As #fNum
    13. Print #1, "ftp " & vFTPServ; " && USER && PW && cd /SUBFOLDER && put" & vFile & " && close & quit "
    14. Close
    15. Dim wsh As Object
    16. Set wsh = VBA.CreateObject("WScript.Shell")
    17. Dim waitonreturn As Boolean: waitonreturn = True
    18. Dim windowstyle As Integer: windowstyle = 1
    19. wsh.Run vPath & "\FtpComm.bat", windowstyle, waitonreturn
    20. SetAttr vPath & "\FtpComm.bat", vbNormal
    21. Kill vPath & "\FtpComm.bat"
    22. End Sub


    Sie führt nur den 1. Befehl aus und macht nicht weiter, meldet sich also nur am FTP an und wartet auf die Eingabe des Benutzers.

    Wie schaffe ich es, dass wenn der 1. Befehl fertig ist der 2. gestartet wird? Eigentlich funktioniert das doch mit dem && Operator (heißt dass 2. Operation startet wenn 1. fertig ist)

    So sollte es eigentlich aussehen :

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gunngir“ ()

    Das wird so wie du es versuchst nicht funktionieren. Du kannst aber einen Command für ftp.exe zusammenbasteln in eine Datei und diese ftp.exe übergeben

    Visual Basic-Quellcode

    1. TempFile = vPath & "ftp.tmp"
    2. Open TempFile For Output As #FileNr
    3. Print #FileNr, UserName
    4. Print #FileNr, Password
    5. Print #FileNr, "cd """ & SubFolder & """"
    6. Print #FileNr, "put """ & vFile & """"
    7. Print #FileNr, "close"
    8. Print #FileNr, "quit"
    9. Close #FileNr
    10. 'FTP via Shell ausführen:
    11. wsh.Run "FTP -s:" & TempFile & " " & Hostname
    12. Kill TempFile
    Das ist meine Signatur und sie wird wunderbar sein!