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

Forumthread: prüfen ob string als datum gelesen werden kann

prüfen ob string als datum gelesen werden kann
gothino
Hallo,
ich möchte prüfen ob ein string in ein Datum konvertiert werden kann,
im speziellen habe ich
txt = "01-Dez-2003"
Witzigerweise funktioniert
Dim datum as date
datum = cdate(txt)
auf bestimmten Computern, auf anderen nicht?
Da kommt dann Laufzeitfehler 13 (Typenunverträglichkeit)
Jetzt versuche ich vorher zu prüfen ob der computer txt als datum lesen kann und zwar durch die Abfrage
If IsError(CDate(txt)) Then ...
Dann bekomme ich Laufzeitfehler 13 bei der If-Abfrage, ISERROR scheint nichts zu bringen.
Wie kann ich also abfrage ob sich ein string in ein date übersetzen lässt?
Danke und lg
gothino
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: prüfen ob string als datum gelesen werden kann
02.09.2009 16:16:53
So?
Dim datum as date
On Error Resume Next
datum = cdate(txt)
If Err 0 Then
Msgbox "Nix Datum!"
Exit Sub
End If
AW: prüfen ob string als datum gelesen werden kann
02.09.2009 16:18:00
Hajo_Zi
Hallo,
benutze IsDate()

AW: prüfen ob string als datum gelesen werden kann
02.09.2009 16:18:17
Oberschlumpf
Hi Name?
Kennst du die Prüfmöglichkeit
IsDate(argument)
?
Bsp
txt = "01-Dez-2003"
If IsDate(txt) = True then
Hilfts?
Ciao
Thorsten
Anzeige
AW: prüfen ob string als datum gelesen werden kann
02.09.2009 17:22:29
fcs
Hallo Gothino,
das die Funktion CDate(Text) auf manchen Computern funktioniert und auf anderen nicht liegt möglicherweise an den Ländereinstellungen in der Systemsteuerung oder auch in Excel selbst.
Mit Englischer Einstellung wird "Dez" nicht aber "Dec" erkannt, Deutsch erkennt "Dez" als Monat.
Ggf. solltes du die Problemfälle Mrz(Mar), Mai(May), Okt(Oct), Dez(Dec) einer Sonderbehandlung unterziehen.
Gruß
Franz
Anzeige
;

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

Prüfen, ob ein String als Datum gelesen werden kann


Schritt-für-Schritt-Anleitung

  1. String definieren: Zuerst musst Du den String definieren, den Du auf ein Datum prüfen möchtest. Beispiel:

    Dim txt As String
    txt = "01-Dez-2003"
  2. Überprüfen, ob der String ein Datum ist: Verwende die Funktion IsDate() in VBA, um zu prüfen, ob der String als Datum gelesen werden kann:

    If IsDate(txt) Then
       MsgBox "Der String kann in ein Datum umgewandelt werden."
    Else
       MsgBox "Der String ist kein gültiges Datum."
    End If
  3. Fehlerbehandlung: Wenn Du CDate() verwenden möchtest, solltest Du eine Fehlerbehandlung einfügen:

    Dim datum As Date
    On Error Resume Next
    datum = CDate(txt)
    If Err.Number <> 0 Then
       MsgBox "Nix Datum!"
       Err.Clear
    End If

Häufige Fehler und Lösungen

  • Laufzeitfehler 13 (Typenunverträglichkeit): Dieser Fehler tritt häufig auf, wenn CDate() auf einem System nicht funktioniert. Überprüfe die Ländereinstellungen Deines Computers oder in Excel, da unterschiedliche Einstellungen "Dez" (für Dezember) möglicherweise nicht erkennen.

  • Problem mit Monatsabkürzungen: Bei verschiedenen Ländereinstellungen kann es sein, dass z.B. "Dez" in englischen Systemen nicht erkannt wird. Daher kann es hilfreich sein, eine speziellere Behandlung für solche Abkürzungen zu implementieren.


Alternative Methoden

Falls Du nicht mit IsDate() oder CDate() arbeiten möchtest, kannst Du den String auch manuell analysieren, um zu überprüfen, ob er dem Datumsformat entspricht. Eine einfache Regex-Überprüfung könnte hier helfen, ist jedoch in VBA aufwendiger.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die oben genannten Methoden kombinieren kannst:

Sub PrüfenObDatum()
    Dim txt As String
    txt = "01-Dez-2003"

    If IsDate(txt) Then
        MsgBox "Der String " & txt & " ist ein gültiges Datum."
    Else
        MsgBox "Der String " & txt & " kann nicht in ein Datum umgewandelt werden."
    End If

    Dim datum As Date
    On Error Resume Next
    datum = CDate(txt)
    If Err.Number <> 0 Then
        MsgBox "Fehler: " & Err.Description
        Err.Clear
    Else
        MsgBox "Das Datum ist: " & datum
    End If
End Sub

Tipps für Profis

  • VBA CDate Funktion: Nutze CDate() vorsichtig, insbesondere bei Strings, die aus verschiedenen Ländern stammen. Eine zusätzliche Prüfung durch IsDate() kann Dir helfen, Laufzeitfehler zu vermeiden.

  • Datenvalidierung in Excel: Wenn Du Daten in Excel importierst, stelle sicher, dass die Datenquelle eindeutig ist. Eine Überprüfung, ob ein String als Datum gelesen werden kann, kann helfen, spätere Probleme zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich auch andere Datumsformate prüfen? Ja, die Funktion IsDate() unterstützt verschiedene Formate. Achte jedoch auf die Ländereinstellungen, da diese die Erkennung beeinflussen können.

2. Was ist der Unterschied zwischen CDate und IsDate? IsDate() prüft, ob der String in ein Datum umgewandelt werden kann, während CDate() versucht, den String tatsächlich in ein Datum zu konvertieren. Bei CDate() kann es zu Laufzeitfehlern kommen, wenn das Format nicht unterstützt wird.

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