Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateiendung ändern, Dateinamen variabel

Dateiendung ändern, Dateinamen variabel
14.05.2014 13:32:36
dEllE
Hallo an alle,
zum Thema Umbennen habe ich einiges gefunden was funktioniert, allerdings wird dort immer nur mit statischen Pfad- und Dateiangaben gewerkelt.
Ich möchte eine Datei, die täglich in einem Ordner erstellt und nach Datum und Uhrzeit benannt wird, von .csv in .txt ändern.
(Beispiel-Dateiname: DPD_20140131080508.CSV)
Meine Idee war:
Dim dpdpfad As String
Dim oldnamefile As String
Dim newnamefile As String
dpdpfad = "\\Server01\bw\Versand\01\BACKUP\"
oldnamefile = Dir$(dpdpfad & "DPD" & "*.csv")
newnamefile = Dir$(dpdpfad & "DPD" & "*.txt")
Name oldnamefile As newnamefile
Die funktioniert leider nicht. Wo habe ich da einen Denkfehler?
Des Weiteren möchte ich auch überprüfen, ob die Datei von heute ist. Uhrzeit ist da egal. Da gibt es eine funktion LEFT, bei der ich aber nicht weiss, wie ich erst ab Stelle 4 von links prüfen kann.
Danke für Eure Tips
Gruss dElLE

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiendung ändern, Dateinamen variabel
14.05.2014 13:46:18
Rudi
Hallo,
Dir() gibt nur den Dateinamen zurück.
newnamefile = Dir$(dpdpfad & "DPD" & "*.txt")
liefert den Namen einer existierenden dpd*.txt oder "".
newnamefile=left(oldnamefile, len(oldnamefile)-3) &"txt"
name dpdpfad & oldnamefile as dpdpfad & newnamefile
Gruß
Rudi

AW: Dateiendung ändern, Dateinamen variabel
14.05.2014 13:51:03
Daniel
Hi
ein Denkfehler ist beispielsweise dass du glaubst, dass die DIR-Funktion den vollständigen Dateinamen ermittet (pfad + Dateiname), tatsächlich bekommst du aber nur den Dateinamen ohne Pfad.
der zweite Denkfehler ist, dass du den neuen Dateinamen ebenfalls mit der DIR-Funktion ermitteln willst, das geht natürlich nicht, weil die neue Datei ja noch gar nicht vorhanden ist und dewswegen die Dir-Funktion den Leerstring als ergebnis liefert.
der dritte Denkfehler könnte sein, dass du eine Datei zwar umbennen kannst, sich aber dadurch die Datei ansich nicht ändert.
Dim dpdpfad As String
Dim oldnamefile As String
Dim newnamefile As String
dpdpfad = "\\Server01\bw\Versand\01\BACKUP\"
oldnamefile = dpdpfad & Dir$(dpdpfad & "DPD" & "*.csv")
newnamefile = =left(oldfilename, Len(oldfilename) - 3) & "txt"
Name oldnamefile As newnamefile
Gruß Daniel

Anzeige
AW: Dateiendung ändern, Dateinamen variabel
14.05.2014 13:58:17
GuentherH
Hi deile,
oldnamefile = Dir$(dpdpfad & "DPD" & "*.csv")
liefert Dir die erste Datei, mit csv als Endung - was du haben willst oder?
newnamefile = Dir$(dpdpfad & "DPD" & "*.txt")
liefert Dir die erste Datei, mit txt als Endung - was du nicht haben willst!!
Du willst vermutlich
newnamefile= left( oldnamefile, len(oldnamefile )-3) & "txt"
Ob das Umbenennen mit dem Befehl name funktioniert bezweifle ich, teste ich aber erstmal nicht.
Desweiteren suchst Du wohl den Befehl
if mid(oldnamefile,5,8) = format(now(),"YYYYMMDD") then
Gruß,
Günther

Anzeige
AW: Dateiendung ändern, Dateinamen variabel
14.05.2014 15:46:02
dEllE
Hi ihr drei,
danke für die tolle Hilfe. Auch die Erklärung von Daniel hat mir sehr viel weitergeholfen.
Funktioniert alles tadellos.
Und danke an Guenther für das kleine Extra - ich hatte das mit LEFT, RIGHT und LEN hinbekommen nach ewigem Hin- und Her, aber so ist es natürlich sehr viel kürzer.
Muchas gracias - immer wieder eine Freude in diesem Forum!!!!

Danke für die Rückmeldung o.w.T.
14.05.2014 16:24:40
GuentherH
Danke für die Rückmeldung
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen