Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
232to236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
232to236
232to236
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateien umbenennen

Dateien umbenennen
19.03.2003 08:42:28
Carsten
Hallo zusammen,

leider konnte mir bisher niemand helfen und auch die Recherche hat mich nicht weitergebracht.

Wie kann ich eine Datei umbenennen von der ich nur weiß, in welchem Verzeichnis Sie liegt, dass sie mit einem "r" beginnt, eine .csv Datei ist und am selben Tag, also immer "heute" erstellt wurde?

Das Problem ist also, dass die Datei nur am Datum zu erkennen ist.

Hat jemand eine Idee?

Danke
Carsten

P.S.
Hallo Nike, danke für Deinen Versuch, aber deine Hinweise haben mich leider nicht weiter gebracht.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Dateien umbenennen
19.03.2003 08:50:41
gordon

Hallo Carsten,

Application.FileSearch mit Muster i.S.v.
Dateiname = r*.csv - Resultat überprüfen auf FileDateTime = CDate(now())

Gruß
gordon

Re: Dateien umbenennen
19.03.2003 09:19:34
Carsten

Hallo Gordon,

ich bin nicht gerade ein VBA-Profi. Könntest Du evtl. ein Beispiel posten wie der Code komplett lauten muß.

Danke im voraus.

Carsten

Re: Dateien umbenennen
19.03.2003 15:08:06
gordon

Gruß
gordon





Re: Dateien umbenennen
20.03.2003 08:02:59
Carsten

Hallo Gordon,

vielen Dank für Deine Mühe. Eine Frage hätte ich trotzdem noch.

Die Datei soll keinen komplett neuen Namen erhalten, es soll lediglich der erste Buchstabe geändert werden, also z.B. von r0000123 in x0000123.
Hättest Du da auch einen Vorschlag?

Danke
Carsten

Anzeige
Re: Dateien umbenennen
20.03.2003 11:09:45
gordon

Hallo Carsten,

nach Zeile FDir = Left(.FoundFiles(nFiles), startpos)
einfügen

denkbar ist z.B. auch, das aktuelle Datum in den Namen der Datei mit aufzunehmen

newFName = Mid(.FoundFiles(nFiles), startpos + 1) & "_" & Format(Now(), "yyyymmdd")

Generell vielleicht mal durch das Makro schrittweise durchgehen und verstehen, auch die Onlinehilfe (im Debugger Cursor auf den fraglichen Begriff und F1-Taste) gibt sehr gute Informationen.

Positionierung auf Left - F1-Taste -> siehe auch -> dort sind z.B. die verschiedenen Funktionen zum zusammensetzen von Strings erklärt.

Gruß
gordon


Anzeige
Super, vielen Dank!
20.03.2003 11:42:27
Carsten



Kommando zurück
20.03.2003 11:59:01
Carsten

Hallo Gordon,

ich muß nochmal nerven. Sorry.
Ich selber arbeite mit Office 2000. Das Makro soll jedoch hauptsächlich unter Office 97 arbeiten und da kommt dann bei ".Filename = srchStr" der Laufzeitfehler 5.
Leider kann ich nicht in die VBA-Hilfe schauen, da die Hilfedateien nicht installiert sind und ich das auch nicht nachholen kann.
Hättest Du da auch einen Tip?

Danke
Carsten

Re: Kommando zurück
20.03.2003 14:11:39
gordon

Hallo Carsten,

bei mir läuft das Makro unter 97 ohne Probleme, kann es deshalb leider nicht nachvollziehen -
Fehler 5 ist:"Unzulässiger Prozeduraufruf oder ungültiges Argument"

Die Prozedur ist die Application.FileSearch. Hast Du am Code noch Änderungen vorgenommen ? Überprüfe mal, ob die with - end with Bedingung noch unverändert ist, sonst wird evtl. das falsche Objekt angesprochen (.Filename ist nur bei Verwendung von with - end with mit Application.FileSearch.Filename identisch)

Was steht in srchStr für ein Wert ? Evtl. hast Du keinen gültigen String zusammengesetzt.

Poste sonst nochmal den Code, den Du mittlerweile verwendest.

Gruß
gordon

Anzeige
Re: Kommando zurück
20.03.2003 14:37:53
Carsten

Hallo Gordon,

momentan sieht der Code so aus:

Option Explicit
Sub SearchCopyKill()
Dim nFiles As Long
Dim strDrive$, newFName$, FDir$
Dim startpos As Integer
'---------------------------------

Const srchStr = "r*" 'hier z.B. "p*.csv"
'newFName = "NeuDatei1.txt"
With Application.FileSearch
.NewSearch
.LookIn = "C:\Test" 'DeinPfad
.SearchSubFolders = False 'True, wenn auch Unterordner
.Filename = srchStr
If .Execute() > 0 Then
For nFiles = 1 To .FoundFiles.Count
' check filedatetime
If Format(FileDateTime(.FoundFiles(nFiles)), "yyyymmdd") = _
Format(Now(), "yyyymmdd") Then
'MsgBox ("Datei: " & .FoundFiles(nFiles) & " ist von heute !")
startpos = 1
Do Until InStr(startpos + 1, .FoundFiles(nFiles), "\") = 0
startpos = InStr(startpos + 1, .FoundFiles(nFiles), "\")
Loop
FDir = Left(.FoundFiles(nFiles), startpos)
newFName = "x" & Mid(.FoundFiles(nFiles), startpos + 2)
' kopieren und löschen, sofern zieldatei nicht bereits existent
If Dir(FDir & newFName) = "" Then
FileCopy .FoundFiles(nFiles), FDir & newFName
Kill .FoundFiles(nFiles)
Else
MsgBox ("Datei " & FDir & newFName & " existiert bereits!")
End If
End If
Next
End If
End With
End Sub

Ich hab nochmal nachgesehen. Die Datei die umbenannt wird hat keine Endung, sie heißt nur "r000123".
Kann es auch daran liegen?

Gruß
Carsten

Anzeige
Re: Kommando zurück
20.03.2003 16:56:52
gordon

Hallo Carsten,

wie gesagt, Code läuft bei mir, r* als Eingabe ist jedoch nicht sinnvoll, da Filename nach meinem Test immer Eingaben inder Form "SuchString1.SuchString2" erwartet - Versuche "r*.*" - hierbei werden auch Dateien ohne Endung gefunden.

Gruß
gordon

Re: Kommando zurück
20.03.2003 18:29:01
Carsten

Hab r*.* schon probiert. Klappt unter 2000 auch. Unter 97 kommt noch immer der Fehler. :-(

Schönen Abend noch.

Carsten

Re: Kommando zurück
20.03.2003 19:48:50
gordon

Kann mir das leider auch nicht erklären, schliesslich ist das Modul unter 97 entwickelt...???

naja, Fehlersuche ist immer 90% der Programmierung ;-)
Gruß
gordon

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige