Datum aus Dateinamen an beliebiger Position auslesen
Schritt-für-Schritt-Anleitung
Um ein Datum im Dateinamen zu erkennen und auszutauschen, kannst Du den folgenden VBA-Code verwenden. Dieser Code sucht nach einem Datum in verschiedenen Formaten und an beliebigen Positionen im Dateinamen:
Sub DatumImDateinamenAustauschen()
Dim NameAlt As String
Dim NameNeu As String
Dim txt As String
Dim i As Long
Dim NeuesDatum As Date
NeuesDatum = Date
NameAlt = ActiveWorkbook.Name
'--- Datum 8 Stellen
If NameAlt Like "*########*" Then
For i = 1 To Len(NameAlt) - 7
txt = Mid(NameAlt, i, 8)
If txt Like "########" Then
If IsDate(Format(CLng(txt), "0000-00-00")) Then
NameNeu = NameAlt
Mid(NameNeu, i, 8) = Format(NeuesDatum, "YYYYMMDD")
Exit For
End If
End If
Next
End If
'--- Datum 6 Stellen
If NameNeu = "" And NameAlt Like "*######*" Then
For i = 1 To Len(NameAlt) - 5
txt = Mid(NameAlt, i, 6)
If txt Like "######" Then
If IsDate(Format(CLng(txt), "00-00-00")) Then
NameNeu = NameAlt
Mid(NameNeu, i, 6) = Format(NeuesDatum, "YYMMDD")
Exit For
End If
End If
Next
End If
If NameNeu = "" Then
MsgBox "Kein Datum gefunden"
Else
MsgBox NameAlt & vbLf & NameNeu
End If
End Sub
Häufige Fehler und Lösungen
-
Datum nicht gefunden:
- Stelle sicher, dass das Datum im Dateinamen das richtige Format hat (6 oder 8 Stellen).
- Überprüfe, ob das Datum von 6-stelligen Zahlenfolgen umgeben ist, die kein Datum darstellen.
-
Falsches Datum wird ersetzt:
- Wenn andere Zahlenfolgen im Dateinamen existieren, kann es sein, dass das falsche Datum erkannt wird. In diesem Fall solltest Du den Code anpassen, um zusätzliche Abfragen einzubauen, wie im folgenden Abschnitt beschrieben.
Alternative Methoden
Falls Du kein VBA verwenden möchtest, kannst Du auch Excel-Formeln in Kombination mit Textfunktionen nutzen, um das Datum im Dateinamen zu extrahieren. Verwende Funktionen wie FINDEN
, TEIL
und LÄNGE
, um die Position des Datums zu bestimmen und es zu ersetzen.
Allerdings ist diese Methode weniger flexibel, da sie nicht automatisch an verschiedene Formate angepasst werden kann.
Praktische Beispiele
-
Datum am Anfang:
- Dateiname:
20230315_Report.xlsx
- Ersetze das Datum durch den aktuellen Tag:
20230315
wird durch z.B. 20231020
ersetzt und ergibt 20231020_Report.xlsx
.
-
Datum in der Mitte:
- Dateiname:
Report_20230315_Version1.xlsx
- Nach Ausführen des Codes wird das Datum an der gleichen Stelle ersetzt.
Tipps für Profis
-
Verfeinere die Suchkriterien: Füge Bedingungen hinzu, um sicherzustellen, dass nur das Datum im Dateinamen ausgetauscht wird, indem Du zusätzliche Checks implementierst, wie z.B. das Vorhandensein bestimmter Wörter oder Separatoren (z.B. Unterstriche oder Bindestriche).
-
Fehlerbehandlung einbauen: Implementiere eine umfassende Fehlerbehandlung, um unerwartete Situationen besser zu handhaben, wie z.B. ungültige Dateinamen oder unerwartete Formate.
FAQ: Häufige Fragen
1. Wie erkenne ich, ob das Datum im Dateinamen korrekt formatiert ist?
Das Datum sollte entweder 6-stellig (YYMMDD) oder 8-stellig (YYYYMMDD) sein. Achte darauf, dass es keine anderen 6-stelligen Zahlenfolgen im Namen gibt.
2. Was, wenn ich mehrere Datumsformate in meinen Dateinamen habe?
Du kannst den Code erweitern, um zusätzliche Formate zu erkennen, indem Du weitere Bedingungen hinzufügst, die auf verschiedene Anordnungen des Datums im Dateinamen reagieren.
3. Ist dieser Code mit allen Excel-Versionen kompatibel?
Der bereitgestellte Code sollte in den meisten modernen Excel-Versionen (2010 und höher) funktionieren. Achte darauf, die Makros in der Datei zu aktivieren.