Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

IsDate() mit Formatvorgabe prüfen


Betrifft: IsDate() mit Formatvorgabe prüfen von: steffen
Geschrieben am: 21.09.2017 14:39:57

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

  

Betrifft: AW: IsDate() mit Formatvorgabe prüfen von: Michael (migre)
Geschrieben am: 21.09.2017 14:48:02

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


  

Betrifft: AW: IsDate() mit Formatvorgabe prüfen von: yummi
Geschrieben am: 21.09.2017 14:48:43

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


  

Betrifft: AW: IsDate() mit Formatvorgabe prüfen von: Gerd L
Geschrieben am: 21.09.2017 15:00:38

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


  

Betrifft: AW: IsDate() mit Formatvorgabe prüfen von: Daniel
Geschrieben am: 21.09.2017 14:55:58

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


  

Betrifft: Danke von: steffen
Geschrieben am: 21.09.2017 15:27:13

super schnelle Hilfe.....echt klasse


Beiträge aus den Excel-Beispielen zum Thema "IsDate() mit Formatvorgabe prüfen"