Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Dialog-Datumseingabe vereinfachen und kontrollieren

Gruppe

TextBox

Problem

Wie kann ich die Datumseingabe im Format TTMMJJJJ in eine DialogEditBox kontrollieren und weiterverarbeiten lassen? Nach der Eingabe von 8 Zeichen soll der Focus an die nächste EditBox weitergegeben werden.

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.

StandardModule: basMain

Sub CallForm()
   frmDate.Show
End Sub

ClassModule: frmDate

Private Sub cmdContinue_Click()
   Unload Me
End Sub

Private Sub txtDate_Change()
   Dim sDate As String
   sDate = txtDate.Text
   If sDate = "" Then Exit Sub
   If Not Right(sDate, 1) Like "[0-9]" Then
      sDate = Left(sDate, Len(sDate) - 1)
      txtDate.Text = sDate
   End If
   If Len(sDate) = 6 Then
      sDate = Format(DateSerial( _
         "20" & Right(sDate, 2), _
         Mid(sDate, 3, 2), _
         Left(sDate, 2) _
         ), "dd.mm.yy")
      txtDate.Text = sDate
   End If
End Sub