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:
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 :
Hier die Subroutine, an der ich momentan scheitere:
Visual Basic-Quellcode
- Public Sub FtpSend(ByVal vFile As String, ByVal vFTPServ As String)
- Dim vPath As String: vPath = ThisWorkbook.Path
- 'Dim vFile As String
- 'Dim vFTPServ As String
- Dim fNum As Long
- 'vFile = "YourFile.csv"
- 'vFTPServ = "********"
- Dim SplitArr() As String
- SplitArr() = Split(vFile, "\")
- 'Mounting file command for ftp.exe
- fNum = FreeFile()
- Open vPath & "\FtpComm.bat" For Output As #fNum
- Print #1, "ftp " & vFTPServ; " && USER && PW && cd /SUBFOLDER && put" & vFile & " && close & quit "
- Close
- Dim wsh As Object
- Set wsh = VBA.CreateObject("WScript.Shell")
- Dim waitonreturn As Boolean: waitonreturn = True
- Dim windowstyle As Integer: windowstyle = 1
- wsh.Run vPath & "\FtpComm.bat", windowstyle, waitonreturn
- SetAttr vPath & "\FtpComm.bat", vbNormal
- Kill vPath & "\FtpComm.bat"
- 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“ ()