Registriert seit: 06.03.2017
Version(en): 2007
Hallo,
erst einmal eine allgemeine Frage.
Ist es möglich mit Excel auf einen SFTP Server zuzugreifen, dort zu Prüfen ob Dateien in einem Ordner vorhanden sind, wenn ja diese von dort herunterzuladen und dann dort zu löschen?
Und das selbe dann mit einem anderen Ordner in die entgegengesetzte Richtung.
Registriert seit: 26.07.2017
Version(en): 365
Ich hatte mich damit zuletzt auch beschäftigt (ftp) und bin letztlich auf das Kommandozeilen-Tool "curl.exe" (
https://curl.haxx.se/) gestoßen, das du über die WScript.Shell aufrufen kannst, entweder direkt oder über eine cmd-Datei (bietet sich eher an, da die Parameter für curl etwas tricky sind). Falls das für dich ein Lösungsweg ist, dann stelle ich den hier vor.
Viel Erfolg!
Herzliche Grüße aus dem Rheinland
Jörg
[Windows 10, Microsoft 365]
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
ich dachte "cURL" gäbe es nur in Linux.
Zumindest früher konnte man auch mit dem InternetExplorer auf FTP zugreifen, eventuell muss das in den Einstellungen freigeschaltet werden.
Auch im CMD-Fenster gibt es FTP, das allerdings ein Untermenü öffnet.
Versuche es zuerst in CMD bzw IE, wenn das geht, kann man es vielleicht auch aus Excel per VBA ansteuern.
mfg
Registriert seit: 06.03.2017
Version(en): 2007
Hallo, danke für die Hinweise.
Zur Zeit benutze ich dafür Filezilla bzw auch Winscp.
Für mich kein Problem.
Aber ich möchte diesen Filetransfer eigentlich möglichst einfach, am besten völlig Vollautomatisch lösen. Um auch evtl. Bedienungsfehler unerfahrener Benutzer zu vermeiden. (z.B. es wird ja schnell mal ein Verzeichniss gewechselt, und schon landet die Datei sonstwo)
Daher bin ich auf die Idee gekommen das evtl per VBA zu lösen. Je eine Datei für den Down- und Upload.
Excelatei öffnen-> Daten werden geprüft, wenn was vorhanden-> download -> Dateien auf Server löschen -> Exceldatei schliessen
Mit Excel wäre das von fast jedem Rechner möglich ohne eine extra Software zu insten.
00202
Nicht registrierter Gast
Hallo, :19:
Du kannst
WinSCP als
COM-Objekt einbinden und dann alles
automatisieren:
Using WinSCP .NET Assembly from Visual Basic for Applications (VBA)...Läuft prima. :21:
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
als ich den Link von Case speichern wollte, habe ich folgende Codes in meinem Archiv entdeckt:
Code:
Sub daten_vom_server()
'Dateien vom Server lokal speichern
Dim objShell As Object, fso As Object
Dim oLokal As Object, oFTP As Object
Dim sLokal As Variant, sFTP As String
Dim sUser As String, sPasswort As String
sLokal = "C:\Temp\FTP" 'anpassen
sFTP = "ksv-gifhorn.de/dateien/2018-KM" 'anpassen
sUser = "Benutzername" 'anpassen
sPasswort = "Passwort" 'anpassen
Set objShell = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder sLokal, 1
fso.CreateFolder sLokal
Set oLokal = objShell.Namespace(sLokal)
Set oFTP = objShell.Namespace("ftp://" & sUser & ":" & sPasswort & "@" & sFTP)
If Not oFTP Is Nothing Then
oLokal.CopyHere oFTP.items, 4 + 16
End If
Set fso = Nothing
Set objShell = Nothing
End Sub
#########################
Sub M_snb()
CreateObject("Shell.Application").Namespace("G:\OF\AA1").CopyHere CreateObject("Shell.Application").Namespace("ftp://username:passwort@snb-vba.eu/domains/snb-vba.eu/public_html/bestanden").Items, 4 + 16
End Sub
Ich habe keinen der beiden Codes getestet, bitte aber um feedback, ob sie hilfreich sind.
mfg
Registriert seit: 06.03.2017
Version(en): 2007
Habe den Code mal angepasst und probiert, aber leider passiert nichts.
00202
Nicht registrierter Gast
Hallo, :19:
die beiden Beispiele sind nun mal für FTP. Wenn Du per SFTP (was eigentlich ein irreführender Begriff ist/sein kann) arbeitest und Du möchtest dir die Arbeit vereinfachen, solltest Du dich mit dem von mir gezeigten Link auseinandersetzen. :21:
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
die Frage hat mich motiviert in CMD den Aufruf "sftp" zu testen: Treffer
Ob man das per VBA ansteuern kann, weiß ich zwar nicht, aber vielleicht kann ein Könner einen Tipp geben.
mfg
(Dass in CMD "ftp" enthalten ist, dürfte bekannt sein.)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ich muss mich demnächst auch mit dem Thema beschäftigen. In dem Zusammenhang mal ein Hinweis zu #2 und #3 - cURL ist seit diesem Jahr in W10 enthalten und braucht nicht gesondert von der Seite geholt und installiert zu werden.
Siehe curl -help
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)