Textbox hadert mit dem Datumsformat

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox MsgBox
Bild

Betrifft: Textbox hadert mit dem Datumsformat
von: PQuest:-)
Geschrieben am: 15.10.2015 09:51:26

Hallo,
ich habe eine Textbox in einem Userform. In diese Textbox gebe ich ein Datum ein un danach berechnen sich Folgetermine in weiteren Textboxen.
Was mich gerade verrückt macht ist die Eingabe des Datums.

Private Sub txtDCV_Change()
Dim dtDCV As Date
Dim dtSCV14 As Date, dtSCV28 As Date, dtSCV42 As Date, dtSCV56 As Date
Dim dtFUS1 As Date, dtFUS3 As Date, dtFUS7 As Date, dtFus10 As Date
dtDCV = CDate(txtDCV.Value)
txtSCV14.Value = dtDCV + 12
txtSCV28.Value = dtDCV + 26
txtSCV42.Value = dtDCV + 40
txtSCV56.Value = dtDCV + 54
End Sub
Gebe ich das Datum in der Form 1.1.1900 ein, ist alles ok. Verwende ich dagegen alternative Eingaben wie 1-1-1900 oder 1/1/1900 steigt das Programm beim zweiten - bzw. beim ersten / mit der Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" aus.
Wie bekomme ich das Userform dazu, die alternativen EIngaben zu akzeptieren?
Gruß,
PQuest:-)

Bild

Betrifft: AW: Textbox hadert mit dem Datumsformat
von: Armin
Geschrieben am: 15.10.2015 10:52:30
Hallo,
so müsste es gehen:
.....
txtSCV14.Value = Format(CDate(txtDCV.Value)+ 12,"dd/mm/yyyy")
txtSCV28.Value = Format(CDate(txtDCV.Value)+ 26,"dd/mm/yyyy")
Gruß Armin

Bild

Betrifft: AW: Textbox hadert mit dem Datumsformat
von: PQuest:-)
Geschrieben am: 15.10.2015 11:11:22
Hallo,
danke für den Versuch, aber ich habe mich wohl etwas unklar ausgedrückt. Das Problem ist nicht die Darstellung der Folgedaten. Das klappt wie gewünscht. Das Problem ist die Eingabe des ersten Datums (dtDCV) in das Textfeld txtDCV.
Gebe ich das Datum in der Form 1.1.1900 ein, ist alles ok. Verwende ich dagegen alternative Eingaben wie 1-1-1900 oder 1/1/1900 steigt das Programm bei der Eingabe des zweiten Bindestrichs (-) bzw. beim ersten Schrägstrich (/) mit der Fehlermeldung "Laufzeitfehler 13 Typen unverträglich" aus.
Ganz offensichtlich mag das Programm diese Rechenzeichen nicht in einem Textfeld bzw. wenn es um ein Datum geht :-(
Gibt es noch weitere Ideen?
Gruß,
PQuest:-)

Bild

Betrifft: AW: Textbox hadert mit dem Datumsformat
von: Tino
Geschrieben am: 17.10.2015 14:09:52
Hallo,
kannst mal so versuchen.

Dim RegExp As Object, oMatch As Object
Dim dtDCV As Date
Set RegExp = CreateObject("Vbscript.Regexp")
With RegExp
  .MultiLine = False
  .Pattern = "\d+"
  .Global = True
  Set oMatch = .Execute(txtDCV.Value)
End With
If oMatch.Count = 3 Then
    dtDCV = DateSerial(oMatch(2) * 1, oMatch(1) * 1, oMatch(0) * 1)
Else
    MsgBox "Geben sie ein gültiges Datum ein! Tag Monat Jahr"
    Exit Sub
End If
'...
'...
'...
Gruß Tino

Bild

Betrifft: gelöst
von: PQuest:-)
Geschrieben am: 17.10.2015 14:44:44
Hallo,
Danke für den Vorschlag. Ich habe es so gelöst:

Private Sub txtDCV_AfterUpdate()
    txtDCV = Format(txtDCV, "dd.mm.yyyy")
End Sub

Private Sub txtDCV_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Not IsDate(txtDCV) Then
        txtDCV = ""
        Cancel = True
    End If
End Sub


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Textbox hadert mit dem Datumsformat"