Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum aus Dateinamen auslesen

Datum aus Dateinamen auslesen
26.11.2021 09:03:58
Mark
Moin,
oftmals habe ich hier im Forum schon gute Hilfe gefunden, jetzt habe ich aber keinen passenden Eintrag finden können.
Mein Problem: Ich habe viele Dateien, die in ein bestimmtest Format umbenannt werden müssen und dazu benötige ich das Datum aus dem Dateinamen. Das Datum kann aber in allen möglichen Varianten vorkommen, wie z.B. 20201122 oder 2020-11-22 oder 22.11.2020 usw.
Reguläre Ausdrücke kann ich leider nicht benutzen, weil ich nur den Standardfunktionsumfang von Excel nutzen kann (Firmenpolitik)
Gibt es eine einfache Möglichkeit das Datum aus dem Dateinamen zu extrahieren? Der Dateiname liegt mir als String vor. Ich steh irgendwie auf der Leitung und komme nicht selber drauf.
Vielen Dank für jeden Zaunpfahl ;)
Grüße,
Mark
Anzeige

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Experimentel: Blitzvorschau
26.11.2021 09:14:33
Fennek
Hallo,
Ausgangsbedingung:
- kein VBA
- File-Namen als String in Sheet
Idee:
- nach den verschiedenen Formaten zu sortieren
- für jedes Format einzeln eine Umwandlung in ein Datum mit Blitzvorschau (Menü: Daten)
mfg
AW: Experimentel: Blitzvorschau
26.11.2021 09:31:32
Mark
Moin Fennek,
ich komme nicht an das Datum ran, somit kann ich nicht sortieren und prüfen oder ich übersehe hier etwas. VBA wäre mir am liebsten, da ich das nicht manuell machen wollte.
Das sind 2 Beispiele an Dateinamen, wie ich sie bekomme:
2021.21.11 XXXXXXX XXXX.xlsx
2021.22.11 XXXXXXX XXXX.xlsx
2021.23.11 XXXXXXX XXXX.xlsx
2021.24.11 XXXXXXX XXXX.xlsx
XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211122_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211123_XXXXXXXXXX.xlsx
Es sind aber auch alle denkbaren und undenkbaren Kombinationen denkbar, da sich meine freundlichen Einreicher nicht an die Dateibenennung halten. Eigentlich sollen die alle nach dem Muster YYYYMMDD_XXX_XXXXX.xlsx benannt
Gruß,
Mark
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 09:30:28
UweD
Hallo
Sieh dir das mal an

Sub Test_Datum()
Dim Arr(4), Z, Ext As String
'Beispiele
Arr(1) = "20200122.txt"
Arr(2) = "ABC.txt"
Arr(3) = "2020-01-22.txt"
Arr(4) = "22.01.2020.txt"
Ext = ".txt"
For Z = 1 To 4
Arr(Z) = Replace(Arr(Z), Ext, "")
If Len(Arr(Z)) = 8 And IsNumeric(Arr(Z)) Then
Arr(Z) = Format(Arr(Z), "0000-00-00")
End If
If IsDate(Arr(Z)) Then
MsgBox Format(Arr(Z), "dd.mm.yyyy")
Else
MsgBox Arr(Z) & " ist kein Datum"
End If
Next
End Sub
LG UweD
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 09:37:28
Mark
Moin UweD,
ich schau da gleich mal rein, ob ich da was draus machen kann. Grundsätzlich steht im Dateinahmen aber noch mehr Information drin:
2021.21.11 XXXXXXX XXXX.xlsx
2021.22.11 XXXXXXX XXXX.xlsx
2021.23.11 XXXXXXX XXXX.xlsx
2021.24.11 XXXXXXX XXXX.xlsx
XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211122_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211123_XXXXXXXXXX.xlsx
Ich komme an den Datumsteil nicht ran und der Datumsteil liegt in allen möglichen und unmöglichen Kombinationen vor.
Gruß,
Mark
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 12:52:55
UweD
Hallo nochmal
hab mal 5 Varianten abgebildet

Sub Test_Datum()
Dim Arr(6), Z, Ext As String, i As Integer
Dim TmpT As String, TmpZ As String
'Beispiele
Arr(1) = "2021.21.11 XXXXXXX XXXX.xlsx" 'falsche Reihenfolge
Arr(2) = "2021.11.21 XXXXXXX XXXX.xlsx" 'richtige Reihenfolge
Arr(3) = "XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx"
Arr(4) = "2021-11-21 XXXXXXX XXXX.xlsx"
Arr(5) = " XXXXXXX2021.11-21 XXXX.xlsx"
Arr(6) = "ABC.xlsx"
Ext = ".xlsx"
For Z = 1 To 6
Arr(Z) = Replace(Arr(Z), Ext, "")
Arr(Z) = Replace(Arr(Z), Ext, "_")
TmpZ = ""
TmpT = ""
For i = 1 To Len(Arr(Z))
If IsNumeric(Mid(Arr(Z), i, 1)) Or Mid(Arr(Z), i, 1) = "." Then
'Ziffer oder Punkt
TmpZ = TmpZ & Mid(Arr(Z), i, 1)
ElseIf i > 1 Then
If IsNumeric(Mid(Arr(Z), i - 1, 1)) _
And IsNumeric(Mid(Arr(Z), i + 1, 1)) _
And Mid(Arr(Z), i, 1) = "-" Then
'- wenn davor und danach eine Ziffer
TmpZ = TmpZ & Mid(Arr(Z), i, 1)
Else
TmpT = TmpT & Mid(Arr(Z), i, 1)
End If
Else
'Text
TmpT = TmpT & Mid(Arr(Z), i, 1)
End If
Next
If (Len(TmpZ) = 8 And IsNumeric(TmpZ)) Then
'Zahl 8 Stellig
TmpZ = Format(TmpZ, "0000-00-00")
ElseIf IsDate(TmpZ) Then
'OK
ElseIf Len(TmpZ) = 10 Then
'Wenn mit Punkt aber Monat mit Tag vertauscht
TmpZ = Split(TmpZ, ".")(0) & Split(TmpZ, ".")(2) & Split(TmpZ, ".")(1)
TmpZ = Format(TmpZ, "0000-00-00")
End If
If IsDate(TmpZ) Then
MsgBox Format(TmpZ, "YYYYMMDD") & "_" & TmpT
Else
MsgBox Arr(Z) & " ist kein Datum"
End If
Next
End Sub
LG UweD
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 13:07:24
Rudi
Hallo Uwe
z.B. für
Arr(1) = "2021.09.11 XXXXXXX XXXX.xlsx" 'falsche Reihenfolge
wird IsDate(TmpZ) = True und somit der 11.9.21 statt dem 9.11.21.
Alles wo stelle 6-7 &lt= 12
Gruß
Rudi
AW: Datum aus Dateinamen auslesen
26.11.2021 13:28:12
UweD
Ja, das ist eine Fehlermöglichkeit, die bestehen bleibt.
Da könnte man höchstens bei einer solchen unklaren Konstellation einen Benutzerentscheid abfragen.

Option Explicit
Sub Test_Datum()
Dim Arr(7), Z, Ext As String, i As Integer
Dim TmpT As String, TmpZ As String, JaNein
'Beispiele
Arr(1) = "2021.21.11 XXXXXXX XXXX.xlsx" 'falsche Reihenfolge automatisch berichtigen
Arr(2) = "2021.11.21 XXXXXXX XXXX.xlsx" 'richtige Reihenfolge unklar
Arr(3) = "2021.12.03 XXXXXXX XXXX.xlsx" 'richtige Reihenfolge unklar
Arr(4) = "XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx"
Arr(5) = "2021-11-21 XXXXXXX XXXX.xlsx"
Arr(6) = " XXXXXXX2021.11-21 XXXX.xlsx"
Arr(7) = "ABC.xlsx"
Ext = ".xlsx"
For Z = 1 To 7
Arr(Z) = Replace(Arr(Z), Ext, "")
Arr(Z) = Replace(Arr(Z), Ext, "_")
TmpZ = ""
TmpT = ""
For i = 1 To Len(Arr(Z))
If IsNumeric(Mid(Arr(Z), i, 1)) Or Mid(Arr(Z), i, 1) = "." Then
'Ziffer oder Punkt
TmpZ = TmpZ & Mid(Arr(Z), i, 1)
ElseIf i > 1 Then
If IsNumeric(Mid(Arr(Z), i - 1, 1)) _
And IsNumeric(Mid(Arr(Z), i + 1, 1)) _
And Mid(Arr(Z), i, 1) = "-" Then
'- wenn davor und danach eine Ziffer
TmpZ = TmpZ & Mid(Arr(Z), i, 1)
Else
TmpT = TmpT & Mid(Arr(Z), i, 1)
End If
Else
'Text
TmpT = TmpT & Mid(Arr(Z), i, 1)
End If
Next
If (Len(TmpZ) = 8 And IsNumeric(TmpZ)) Then
'Zahl 8 Stellig
TmpZ = Format(TmpZ, "0000-00-00")
ElseIf IsDate(TmpZ) Then
JaNein = MsgBox(TmpZ & vbLf & vbLf & "Tag und Monat richtig (Ja) oder vertauschen (Nein)", vbYesNo, Arr(Z))
If JaNein = vbNo Then
TmpZ = MonatTag(TmpZ)
End If
ElseIf Len(TmpZ) = 10 Then
'Wenn mit Punkt aber Monat mit Tag vertauscht
TmpZ = MonatTag(TmpZ)
End If
If IsDate(TmpZ) Then
MsgBox Format(TmpZ, "YYYYMMDD") & "_" & TmpT, , Arr(Z)
Else
MsgBox Arr(Z) & " ist kein Datum"
End If
Next
End Sub
Function MonatTag(TT)
Dim TmpZ
MonatTag = Split(TT, ".")(0) & Split(TT, ".")(2) & Split(TT, ".")(1)
MonatTag = Format(MonatTag, "0000-00-00")
End Function
LG UweD
Anzeige
AW: Beispiel-Liste
26.11.2021 10:12:09
Fennek
Hallo,
ist es möglich eine Liste der Datei-Name bereitzustellen?
mfg
z.B. mit CMD: dir *.xlsx [größer als] Liste.txt
AW: Beispiel-Liste
26.11.2021 10:40:41
Mark
Moin Fennek,
Ich kann die Liste nur in einer unkenntlich gemachten Form hier darstellen, da die Benennung schon Aufschluss geben könnte und das ist hier im Unternehmen problematisch. Grundsätzlich steht im Dateinahmen neben dem Datum noch mehr Informationen, die aber auch nicht alle gefiltert werden können. Ich wollte erst den Dateinamen um alle bekannten Teile bereinigen um nur noch das Datum zu haben, leider ist aber immer noch Ballast dabei, den ich nicht filtern kann.
Grundsätzlich sind die Daten so aufgebaut: Das X steht hier einfach für den Ballast der unterschiedlich lang und unterschiedlich formatiert ist.
2021.21.11 XXXXXXX XXXX.xlsx
2021.22.11 XXXXXXX XXXX.xlsx
2021.23.11 XXXXXXX XXXX.xlsx
2021.24.11 XXXXXXX XXXX.xlsx
XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211122_XXXXXXXXXX.xlsx
XXX- XXX- XXX--XXX_20211123_XXXXXXXXXX.xlsx
Ich komme nur an den Datumsteil nicht ran und der Datumsteil liegt in allen möglichen und unmöglichen Kombinationen (oben sind "nur" 2 Beispiele) vor.
Gruß,
Mark
Anzeige
AW: Blitzvorschau geht im Beispiel
26.11.2021 12:00:38
Mark
Moin Fennek,
stimmt da kommt ein Datum bei raus.
Ich muss mir mal überlegen, ob ich das so umsetzen kann oder nicht. Im Grunde fehlt mir der Automatismus und das ich dann einen manuellen Zwischenschritt zwischen 2 Makros hätte.
Danke dir für die Idee schon einmal.
Gruß,
Mark
Anzeige
AW: Beispiel-Liste
26.11.2021 18:01:31
Günther
Moin Mark,
dass du nicht die echten Text-Passagen preisgibst, ist absolut verständlich und auch korrekt.
Was ich gar nicht gut finde ist, dass du nur XXX verwendest, ohne Rücksicht auf eventuelle Besonderheiten, die Excel bei der Analyse helfen könnten. Das wäre beispielsweise auch ein Hinweis, dass außerhalb des "Datums" auch noch Punkte oder Ziffern vorkommen können. Zugegeben, eine gute Anonymisierung macht Arbeit, aber schließlich willst du ja eine hochwertige Leistung ohne Bezahlung haben… Und dass du nur 2 Möglichkeiten der Darstellungsweise eines Datums aufzeigst, ist für mich gleichermaßen unverständlich. Wenn als nächstes ein Datumstext mit Bindestrich oder was auch immer vorkommt, dann geht das Ganze von vorne los und das wird eine "never ending story". ☹
Schade eigentlich …
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
AW: Beispiel-Liste
27.11.2021 16:24:43
Mark
Moin Günther,
es stimmt, ich habe nicht alle möglichen Formate oder Hindernisse angegeben, aber ich suche ja nicht nach einem völlig fertigen Code den ich Copy & Paste verwenden kann, sondert es ging mir mehr um einen Zaunpfahl, mit dem ich in eine brauchbare Richtung gestoßen werde. Tatsächlich sind in den XXXX-Teilen auch noch Nummern drin, die abgefangen werden müssen. Ich habe dazu einen, für mich akzeptablen Code gefunden und stelle den vermutlich morgen allen hier zur Verfügung. Ich möchte auch die fertige Lösung "geben" und nicht nur nehmen.
Zu viele Varianten und Eckpunkte sind manchmal auch sehr schwierig. Um von A nach B durch einen Wald zu laufen, benötigt man häufig ja noch die Wegpunkte C, D usw.
Um unterschiedliche Angaben von Trennzeichen von einem Datum zu verarbeiten, gibt es ja Möglichkeiten:

myTest = "2021_12.31"
myTest = Replace(myTest, ".", "-")
myTest = Replace(myTest, "/", "-")
myTest = Replace(myTest, "_", "-")
'myTest ist jetzt "2021-12-31"
Sobald ich also morgen einen Test über die 2000+ Dateien durch habe und keine Auffälligkeiten aufgetreten sind, packe ich den Code hier bei.
Danke an dieser Stelle schon einmal an alle Anregungen, die ich hier in dem Forum bekommen habe!
Gruß,
Mark
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 11:03:32
Rudi
Hallo,
hilft evtl. das Erstell-/ Änderungsdatum der Dateien?
Oder kommt das Datum in den Dateien vor?
Ansonsten musst du die 'Verbrecher' mahnen.
Oder alle von Hand umbenennen. Wird ja bezahlt ;-)
Gruß
Rudi
AW: Datum aus Dateinamen auslesen
26.11.2021 11:56:30
Franzl
Hallo Fennek,
mein Vorschlag hat mit Excel wenig zu tun, aber ich denke das wäre eine Hilfe.
Denn mit diesem Programm geht eine Umbennung oder Änderung des Dateinamens sehr schnell und effektiv. Ich benutze es hauptsächlich für meine Bildersammlung, aber auch für Dateien ist es 100 % hilfreich.
Hier mal der Link zur Internetseite https://www.rename-expert.de/
Im Prgramm könnte man alle die Datein liste, die die Struktur von 2021.21.11 XXXXXXX XXXX.xlsx haben und ändern, dann eben die andere Struktur.
Nur ein Vorschlag
Anzeige
AW: Datum aus Dateinamen auslesen
26.11.2021 17:41:14
Daniel
Hi
die drei genannten Datumsvarianten kannst du mit dieser Formel aus dem Text extrahieren:
dh das wären:
- JJJJ-MM-TT
- TT.MM.JJJJ
- JJJJMMTT

=MAX(
WENNFEHLER(AGGREGAT(15;6;--TEIL(A1;ZEILE($Z$1:$Z$99);10)/(SUCHEN("?-?-?";TEIL(A1;ZEILE($Z$1:$Z$99);10))=1);1);0);
WENNFEHLER(AGGREGAT(15;6;--TEIL(A1;ZEILE($Z$1:$Z$99);10)/(SUCHEN("?.?.?";TEIL(A1;ZEILE($Z$1:$Z$99);10))=1);1);0);
WENNFEHLER(AGGREGAT(15;6;--TEXT(--TEIL(A1;ZEILE($Z$1:$Z$99);8);"0000-00-00");1);0))
in deiner Excelversion solltest du statt dem Zeile($Z$1:$Z$99) die Funktion Sequenz`(x) verwenden und für x die Maximal mögliche Länge eines Dateinamens eintragen (oder sicherheitshalber etwas länger)
wird kein Datum gefunden, ist das Ergebnis 0.
Du musst die Formel natürlich ausgiebig testen und mit deinen daten verproben, da mir hier natürlich nicht alle Sonderflälle die so vorkommen können über den Weg laufen.
Was nicht vorkommen sollte, sind Ziffernfolgen mit 8 oder mehr Ziffern, die kein Datum sind.
Gruß Daniel
Anzeige
AW: Lösung der Problemstellung
27.11.2021 16:41:46
Mark
Moin,
An dieser Stelle einmal ganz herzlichen Dank für all eure Mühen und guten Ideen! Mit eurer Hilfe habe ich für mein Problem folgenden Code erfolgreich getestet:

Sub Test_Datum()
Dim Arr(13), Z, Ext As String, i As Integer, TmpI As Integer
Dim TmpT As String, TmpZ As String, TmpL As String
Dim TmpD As Boolean
Dim TmpTest As String
'Beispiele
Arr(1) = "2021.21.11 XXXXXXX XXXX.xlsx" 'falsche Reihenfolge
Arr(2) = "2021.11.21 XXXXXXX XXXX.xlsx" 'richtige Reihenfolge
Arr(3) = "XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx"
Arr(4) = "2021-11-21 XXXXXXX XXXX.xlsx"
Arr(5) = " XXXXXXX2021.11-21 XXXX.xlsx"
Arr(6) = "ABC.xlsx"
Arr(7) = "2021.21.11 XXX795 XX5.xlsx"
Arr(8) = "2021.22.11 XXX796 XX2.xlsx"
Arr(9) = "2021.23.11 XXXX97 XX5.xlsx"
Arr(10) = "2021.24.11 XXX798 XX5.xlsx"
Arr(11) = "XXX -XXX - XXX - -XXX_20211121_XXX.xlsx"
Arr(12) = "XXX -XXX - XXX - -XXX_20211122_XX.xlsx"
Arr(13) = "XXX -XXX - XXX - -XXX_20211123_XX.xlsx"
For Z = 1 To 13
TmpZ = ""
TmpT = "0123456789.-/_"
TmpL = ""
TmpI = 0
TmpD = False 'Serie von Ziffern oder Datumstrennern
For i = 1 To Len(Arr(Z))
TmpTest = Mid(Arr(Z), i, 1)
If InStr(1, TmpT, Mid(Arr(Z), i, 1), vbTextCompare) Then 'suche nach Datumskomponente
If (IsNumeric(TmpL) Or IsNumeric(Mid(Arr(Z), i, 1))) And i - TmpI  "" Then Exit For 'Datum wurde gefunden,
'resetten (2 Sonderzeichen in Folge, Lücke, nix passendes gefunden)
TmpI = i
TmpL = ""
End If
Next i
Debug.Print "Datum: " & TmpZ
Next Z
End Sub
Function checkDate(myTest As String) As String
Dim JaNein
myTest = Replace(myTest, ".", "-") 'Punkt zu Strich
myTest = Replace(myTest, "/", "-") 'Eigentlich in Dateiname nicht erlaubt aber ggf. für andere Funktion zu gebrauchen
myTest = Replace(myTest, "_", "-") 'Unterstrich zu Strich
If Right(myTest, 1) = "-" Then
myTest = Left(myTest, Len(myTest) - 1)
End If
If Len(myTest) = 8 And IsNumeric(myTest) Then '00000000
If Not IsDate(Format(myTest, "0000-00-00")) Then
myTest = MonatTag(Format(myTest, "0000-00-00")) 'tausche Monat und Tag
Else
JaNein = MsgBox(Format(myTest, "0000-00-00") & vbLf & vbLf & "Sind Tag und Monat in der richtigen Reihenfolge (Ja) oder vertauscht (nein)?", vbYesNo, "Datum unklar")
If JaNein = vbNo Then
myTest = MonatTag(Format(myTest, "0000-00-00"))
End If
End If
myTest = Format(myTest, "0000-00-00") 'Zahl zu Datum
ElseIf Len(myTest) = 10 And Not IsDate(myTest) Then '0000-00-00
myTest = MonatTag(myTest) 'tausche Monat und Tag
myTest = Format(myTest, "0000-00-00") 'Zahl zu Datum
End If
If IsDate(myTest) Then
checkDate = myTest
End If
End Function
Function MonatTag(myTest As String) As String
myTest = Replace(myTest, ".", "-")
myTest = Replace(myTest, "/", "-")
myTest = Replace(myTest, "_", "-")
MonatTag = Split(myTest, "-")(0) & Split(myTest, "-")(2) & Split(myTest, "-")(1)
End Function
Für die produktive Anwendung muss das Array noch raus und die Variablen würde ich noch dem Namenschema anpassen, aber das geht ja recht fix.
Noch einmal Danke für alle guten Ideen!
Anzeige
Prima. Danke für die Rückmeldung. owT
29.11.2021 08:57:23
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum aus Dateinamen extrahieren in Excel


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Daten: Stelle sicher, dass die Dateinamen in einer Excel-Tabelle als Strings vorliegen. Du kannst sie in einer Spalte einfügen, z.B. in Spalte A.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Neues Modul hinzufügen: Klicke im Projektfenster mit der rechten Maustaste auf VBAProject (DeineDatei) und wähle Einfügen > Modul.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub DatumAusDateinamen()
        Dim Arr(1 To 100) As String
        Dim Z As Integer
        Dim Ext As String
        Dim TmpZ As String
    
        ' Beispiel-Dateinamen
        Arr(1) = "2021.21.11 XXXXXXX XXXX.xlsx"
        Arr(2) = "2021-11-21 XXXXXXX XXXX.xlsx"
        Arr(3) = "XXX- XXX- XXX--XXX_20211121_XXXXXXXXXX.xlsx"
    
        Ext = ".xlsx" ' Erweiterung
    
        For Z = 1 To 3
            Arr(Z) = Replace(Arr(Z), Ext, "")
            ' Logik zur Extraktion des Datums
            ' ... (Implementierung der Datumslogik hier)
            Debug.Print "Datum: " & TmpZ
        Next Z
    End Sub
  5. Code anpassen: Ersetze die Beispiel-Dateinamen mit deinen tatsächlichen Dateinamen.

  6. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle DatumAusDateinamen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Komplizierte Dateinamen": Wenn deine Dateinamen in verschiedenen Formaten vorliegen, stelle sicher, dass du die Logik zur Erkennung und Umwandlung des Datums anpasst. Überprüfe die Bedingungen in deinem VBA-Code.

  • Fehler: "Kein Datum gefunden": Dies kann passieren, wenn das Datum nicht im erwarteten Format vorliegt. Verwende die IsDate-Funktion, um die Gültigkeit des Datums zu überprüfen.


Alternative Methoden

  • Excel-Formeln: Du kannst auch Excel-Formeln verwenden, um das Datum aus dem Text zu extrahieren. Ein Beispiel für eine Formel könnte so aussehen:

    =MAX(
        WENNFEHLER(AGGREGAT(15;6;--TEIL(A1;ZEILE($Z$1:$Z$99);10)/(SUCHEN("?-?-?";TEIL(A1;ZEILE($Z$1:$Z$99);10))=1);1);0),
        WENNFEHLER(AGGREGAT(15;6;--TEIL(A1;ZEILE($Z$1:$Z$99);10)/(SUCHEN("?.?.?";TEIL(A1;ZEILE($Z$1:$Z$99);10))=1);1);0)
    )
  • Blitzvorschau: Wenn du eine neuere Excel-Version hast, kannst du die Blitzvorschau verwenden, um das Datum aus den Dateinamen schnell zu extrahieren. Gehe dazu auf Daten > Blitzvorschau.


Praktische Beispiele

  • Beispiel 1:

    • Dateiname: 2021.21.11 XXXXXXX XXXX.xlsx
    • Erwartetes Datum: 21.11.2021
  • Beispiel 2:

    • Dateiname: 20211121_XXXXXXXXXX.xlsx
    • Erwartetes Datum: 21.11.2021

Diese Beispiele zeigen, wie das Datum aus verschiedenen Formaten herausgelesen werden kann.


Tipps für Profis

  • Reguläre Ausdrücke: Wenn du Zugriff auf erweiterte Funktionen hast, könntest du reguläre Ausdrücke verwenden, um die Datumsformate effizienter zu filtern.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem VBA-Code, um unerwartete Eingaben zu handhaben. Das kann helfen, die Stabilität des Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich das Datum in einem bestimmten Format anzeigen? Du kannst das Format in der MsgBox oder in der Zielzelle anpassen, indem du Format(TmpZ, "dd.mm.yyyy") verwendest.

2. Kann ich auch andere Dateiformate verarbeiten? Ja, passe den Ext-Wert an, um andere Dateiformate wie .txt oder .csv zu berücksichtigen.

3. Was tun, wenn keine Daten gefunden werden? Stelle sicher, dass die Dateinamen im erwarteten Format vorliegen und die Logik zur Datumsüberprüfung korrekt implementiert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige