Hallo zusammen,
ich möchte gerne, dass beim öffnen eines Formulars, eine Datei umbenannt wird.
Habe mal was versucht, aber ohne Erfolg...:-(
Private Sub Form_Load()
Dim file As String
Dim rename As String
file = "Y:\home\andreas\Dokumente\FS24\Arbeitszeiten\Stempeluhr*"
rename = "cmd.exe /c rename "Y:\home\andreas\Dokumente\FS24\Arbeitszeiten\FS24.csv""
End Sub
Hat jemand einen Rat?....
Hallo,
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/name-statement
...vielen Dank und ein entspanntes WE
...ups, nun leider unerwartet ein Problem....-(
Zitat von: Lalikowski am April 09, 2022, 09:51:32...ups, nun leider unerwartet ein Problem....-(
Unerwartet? - Nun ja.
Du übergibst als Ursprungsdatei (oldName) nicht einen konkreten Dateinamen, sondern ein Muster, dem keine, eine, oder X Millionen Dateien entsprechen können. - Dementsprechend weit gefächert sollte da auch die Erwartung des Ergebnisses sein.
Übergib stattdessen den Namen einer konkreten Datei, dann sollte es funktionieren.
Moin PhilS,
aber genau das kann ich nicht, weil bei dieser Datei immer nur der Anfang "StempelUhr" gleich ist....
Die Datei wird aus einer App generiert, bei ich keine Möglichkeit habe, diese anzupassen.
Gibt es dennoch eine Möglichkeit, wie das Problem gelöst werden kann?
Zitat von: Lalikowski am April 09, 2022, 11:03:03aber genau das kann ich nicht, weil bei dieser Datei immer nur der Anfang "StempelUhr" gleich ist....
Dann musst du im VBA-Code selbst erstmal ermitteln, wie der Dateiname genau lautet und danach mit diesem konkreten Namen das Umbenennen durchführen.
Die VBA-
Dir-Funktion (https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/dir-function) liefert dir für so ein Muster, wie du es verwendest, der Reihe nach alle passenden Dateinamen zurück.
...sorry, aber ich bekomme das einfach nicht hin..... :P :P
Ich weiß mir einfach nicht mehr zu helfen..
Private Sub Form_Load()
Dim strPfad As String
Dim strOldFile As String
Dim strNewFile As String
strPfad = "Y:\FS24\Arbeitszeiten\"
strOldFile = Dir(strPfad)
strNewFile = "Y:\FS24\Arbeitszeiten\FS24.csv"
Name strOldFile As strNewFile
Kill strOldFile
End Sub
In Y:\FS24\Arbeitszeiten\ befindet sich nur die Datei "StempelUhr*.csv". Diese muss umbenannt "FS24.csv" werden.
Im Anschluss muss die Datei "StempelUhr*.csv" gelöscht werden.
Kann mir bitte jemand den entsprechenden code schreiben?....
Vielen Dank schon mal....
Zitat von: Lalikowski am April 09, 2022, 15:02:43In Y:\FS24\Arbeitszeiten\ befindet sich nur die Datei "StempelUhr*.csv". Diese muss umbenannt "FS24.csv" werden.
Diese Feststellung müsstest du nur in den Code übernehmen, wie ich bzgl. der Dir-Funktion ja vorgeschlagen hatte.
Wenn es sicher nur eine einzige Datei StempelUhr*.csv in dem Verzeichnis gibt, musst du deinen Code nur anpassen wie folgt:
strPfad = "Y:\FS24\Arbeitszeiten\StempelUhr*.csv"
strOldFile = Dir(strPfad)Wenn es mehrere Dateien geben kann, wird es komplizierter. Du müsstest dann im Anschluss die Dir-Funktion ohne Argument aufrufen, um die übrigen Dateinamen zu bekommen, die dem Muster entsprechen.
...bekomme immer wieder diese Fehlermeldung, siehe Anhang...
Hallo,
lasse Dir mit Debug.Print mal den Wert von strOldFile ausgeben.
Und bitte, bitte keinen Code als Bild hier zeigen, sondern nur als Text in Codetags.
Von Bildern kann man nichts kopieren und zum Abschreiben hat keiner Lust.
...da wird nichts ausgegeben. Vielleicht liegt es aber auch an mir..:(
Private Sub Form_Load()
Dim strPfad As String
Dim strOldFile As String
Dim strNewFile As String
strPfad = "Y:\FS24\Arbeitszeiten\StempelUhr*.csv"
strOldFile = Dir(strPfad)
strNewFile = "Y:\FS24\Arbeitszeiten\FS24.csv"
Debug.Print strOldFile
Name strOldFile As strNewFile
Kill strOldFile
End Sub
Zitat von: Lalikowski am April 09, 2022, 16:18:46...da wird nichts ausgegeben. Vielleicht liegt es aber auch an mir..:(
strPfad = "Y:\FS24\Arbeitszeiten\StempelUhr*.csv"
strOldFile = Dir(strPfad)
Da habe ich nicht aufgepasst und einen Fehler eingebaut.
Dir gibt nur den reinen Dateinamen, ohne den Pfad zurück.
Richtig muss es heißen:
strPfad = "Y:\FS24\Arbeitszeiten\StempelUhr*.csv"
strOldFile = "Y:\FS24\Arbeitszeiten\" & Dir(strPfad)Es wäre allerdings auch nicht besonders schwer gewesen, dieses Problem selbst zu erkennen und zu beheben.
...läuft wie gewünscht, ganz vielen Dank...