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

Forumthread: IsDate() mit Formatvorgabe prüfen

IsDate() mit Formatvorgabe prüfen
21.09.2017 14:39:57
steffen
Hallo,
wie kann ich prüfen, ob in einer Zelle ein Datum in einem bestimmten Format eingetragen ist?
Bsp.
If IsDate(Range("A1")) Then'im Format TT.MM.JJJJ ist ok
MsgBox "Datum ist korrekt erfasst."
Else
MsgBox "Datum hat das falsche Format"
End If
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: IsDate() mit Formatvorgabe prüfen
21.09.2017 14:48:02
Michael
Hallo!
Sub a()
Dim c As Range: Set c = Range("A1")
If c.NumberFormatLocal Like "TT.MM.JJJJ" Then
MsgBox "Datum OK!"
Else: MsgBox "Datum Nicht-OK!"
End If
End Sub
LG
Michael
AW: IsDate() mit Formatvorgabe prüfen
21.09.2017 14:48:43
yummi
Hallo Steffen,
mit

=ZELLE("Format";A1)
kannst Du dir das Format aus Zelle A1 ausgeben lassen. Das kurze Datumsformat z.b. hat den WErt D2
Musst du also erstmal das richtige Format setzen um festzustellen, welchen Wert du bekommen wirst, den Wert kannst Du dann vergleichen.
Ist das das was Du wolltest?
Gruß
yummi
Anzeige
AW: IsDate() mit Formatvorgabe prüfen
21.09.2017 15:00:38
Gerd
Hallo Steffen!
Sub Beispiel()
If IsDate(Range("A1")) Then
If Range("A1").Text = Format(Range("A1").Text, "dd.mm.yyyy") Then
MsgBox "ok"
Else: MsgBox "nicht i.O."
End If
Else: MsgBox "nicht i.O"
End If
End Sub

Gruß Gerd
AW: IsDate() mit Formatvorgabe prüfen
21.09.2017 14:55:58
Daniel
Hi
kommt darauf an, was genau in deiner Excelzelle steht.
steht dort ein normales Exceldatum, dann ist das eine Ganzzahl und es ist relativ egal, wie es formatiert ist.
dein IsDate wird in diesem Fall auch ein FALSCH liefern.
IsDate prüft, ob ein Text in ein Datum gewandelt werden kann.
wenn du also in A1 ein Text steht, dann könntest du so prüfen, ob er im richtigen Format vorliegt:
If IsDate(Range("A1").Value) AND Range("A1").Value like "##.##.####"
oder du nimmst
If IsDate(Range("A1").Text) AND Range("A1").Text like "##.##.####"
das sollte in beiden Fällen funktionieren.
in der Like-Funktion ist das # der Platzhalter für eine Ziffer 0-9.
das IsDate brauchst du trotzdem, weil das Like natürlich auch Nicht-Datumswerte wie 98.76.0000 passieren lassen würde.
Gruß Daniel
Anzeige
Danke
21.09.2017 15:27:13
steffen
super schnelle Hilfe.....echt klasse
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Prüfung von Datumsformaten in Excel mit IsDate()


Schritt-für-Schritt-Anleitung

Um in Excel zu prüfen, ob in einer Zelle ein Datum im gewünschten Format vorliegt, kannst Du die IsDate()-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf "VBAProject (DeineArbeitsmappe)" und wähle Einfügen > Modul.
  3. Füge den folgenden Code ein:

    Sub DatumPruefen()
       Dim c As Range
       Set c = Range("A1") ' Hier wird die Zelle A1 überprüft
    
       If IsDate(c.Value) Then
           If c.Text = Format(c.Value, "dd.mm.yyyy") Then
               MsgBox "Datum ist korrekt erfasst."
           Else
               MsgBox "Datum hat das falsche Format."
           End If
       Else
           MsgBox "In der Zelle befindet sich kein gültiges Datum."
       End If
    End Sub
  4. Führe das Makro aus:

    • Drücke F5 oder gehe zu Run > Run Sub/UserForm, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Fehler: "In der Zelle befindet sich kein gültiges Datum."

    • Lösung: Stelle sicher, dass in der Zelle ein Datum und kein Text oder eine Zahl steht.
  • Fehler: "Datum hat das falsche Format."

    • Lösung: Überprüfe, ob das Datum im Format dd.mm.yyyy eingegeben wurde.
  • Problem mit der Zellenformatierung:

    • Wenn der Inhalt der Zelle als Text formatiert ist, wird IsDate() nicht funktionieren. Stelle sicher, dass die Zelle als Datum formatiert ist.

Alternative Methoden

Neben der Verwendung von IsDate() kannst Du auch die ZELLE()-Funktion nutzen, um das Format der Zelle zu überprüfen:

If ZELLE("Format", A1) Like "D2" Then
    MsgBox "Datum OK!"
Else
    MsgBox "Datum Nicht-OK!"
End If

Diese Methode gibt Dir das Format der Zelle zurück, das Du dann vergleichen kannst.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von IsDate() und Formatprüfungen:

  1. Einfache Datumsprüfung:

    If IsDate(Range("B1").Value) Then
       MsgBox "B1 enthält ein gültiges Datum."
    End If
  2. Prüfung auf spezifisches Format:

    If IsDate(Range("C1").Value) And Range("C1").Text Like "##.##.####" Then
       MsgBox "C1 ist im richtigen Format."
    Else
       MsgBox "C1 ist nicht im richtigen Format."
    End If

Tipps für Profis

  • Verwendung von Platzhaltern: In der Like-Funktion kannst Du # für Ziffern verwenden, um eine flexible Prüfung durchzuführen.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung in Deinen VBA-Skripten, um unerwartete Abstürze zu vermeiden.
  • Zusätzliche Formate: Wenn Du verschiedene Datumsformate prüfen möchtest, passe die Formatierung in der If-Bedingung entsprechend an.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine Zelle ein Datum enthält? Um zu prüfen, ob eine Zelle ein Datum enthält, kannst Du die IsDate()-Funktion verwenden.

2. Was ist der Unterschied zwischen IsDate() und Format()? IsDate() prüft, ob der Inhalt der Zelle in ein Datum umgewandelt werden kann, während Format() verwendet wird, um das Datum in ein bestimmtes Format zu bringen.

3. Wie kann ich ein Datum im Format dd/mm/yyyy überprüfen? Du kannst die IsDate()-Funktion zusammen mit einer If-Bedingung verwenden, um sicherzustellen, dass das Datum im richtigen Format vorliegt.

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