Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

isDate()
#1
Warum gibt mir im VBA isDate("12,22") true zurück? Wie lässt sich der Wert auf Date richtig prüfen?
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#2
Debug.Print CDate("12,22")
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Frogger1986
Antworten Top
#3
Dodgy wie prüfe ich das jetzt auf ein Datum, wo es doch keines dar stellt, sondern einen Geldbetrag...  22
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#4
Hi,

wenn keine Beträge über 23743(=1.1.1965) vorkommen, dann prüfe es damit.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#5
Aber ein Betrag von 12,12€ z.B. wird ja als Datum erkannt obwohl es ein Geldbetrag ist. Es soll ja ein Darum ausgeschlossen werden...
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#6
Hallo, 19 

wir wissen nicht, was du vorhast. Blush 

Aber du könntest es z. B. so prüfen: 21 

Code:
Dim strTMP As String
strTMP = "12,22"
If IsDate(strTMP) And strTMP Like "##.##" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"
strTMP = "12.22"
If IsDate(strTMP) And strTMP Like "##.##" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"

Oder auch so: 21 

Code:
Dim strTMP As String
strTMP = "12,22"
If IsDate(strTMP) And strTMP Like "##.##" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"
strTMP = "12.22"
If IsDate(strTMP) And strTMP Like "##.##" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"
strTMP = "12.12.22"
If IsDate(strTMP) And strTMP Like "##.##" Or strTMP Like "##.##.##" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"
strTMP = "12.12.2022"
If IsDate(strTMP) And strTMP Like "##.##" Or strTMP Like "##.##.##" Or strTMP Like "##.##.####" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"
strTMP = "12,12.2022"
If IsDate(strTMP) And strTMP Like "##.##" Or strTMP Like "##.##.##" Or strTMP Like "##.##.####" Then MsgBox strTMP & " OK" Else MsgBox strTMP & " Nicht OK"

Oder vielleich auch ganz anders - je nachdem, was du vorhast.

"IsDate" schaut ja nur, ob der Wert in ein Datum konvertiert werden KANN. Und das geht bei "12,12".
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Frogger1986
Antworten Top
#7
(17.06.2022, 19:48)Frogger1986 schrieb: Aber ein Betrag von 12,12€ z.B. wird ja als Datum erkannt obwohl es ein Geldbetrag ist.

IsDate("12,12€") ergibt False!
Antworten Top
#8
@Kuwer ja, das gibt false, jedoch werden Beträge nicht mit € eingegeben. Das diente nur der Verdeutlichung! Vielen Dank für die Hilfe, den Ansatz von Case werde ich nutzen, so komme ich weiter!
Eine Menge reden, aber nichts sagen können viele...
Antworten Top
#9
Hi,

wenn Du auf Value prüfst, dann erhältst Du 12,22
Prüfst Du auf Text, dann erhältst Du 12,22 €
Prüfst Du auf Style, erhältst Du Currency (bei Währung)

Bsp.:
Code:
With Range("F7")
    Debug.print "Style: " & .Style, "Text: " & .Text , "Wert: " & .Value
    If IsDate(.Text) Then
            MsgBox "Datum"
        Else
            MsgBox "Kein Datum"
        End If
End With
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • Frogger1986
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste