Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datumsformat für Textbox (UserForm) festlegen

Forumthread: Datumsformat für Textbox (UserForm) festlegen

Datumsformat für Textbox (UserForm) festlegen
08.09.2003 12:31:31
Lars
Hallo liebes Forum,

ich bin ganz stolz, weil ich es geschaft habe meine erste UserForm erstellt zu haben. Jetzt kommt der Feinschliff. Die Textbox2 dient zur Eingabe eines Datums. Jetzt habe ich schon im Archiv gesucht, bin aber leider nicht fündig geworden. Das was ich gefunden habe dient Währungsformaten. Diesen Code habe ich versucht in mein Datumsformat umzuwandeln. Klappt leider aber nicht. Den Code habe ich hier einmal eingefügt.


Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "TT.MM.JJJJ")
End Sub


Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2) Then
TextBox2 = ""
Cancel = True
End If
End Sub


Wäre lieb, wenn mir jemand sagen könnte, was ich falsch mache.

Beste Grüße

Lars
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datumsformat für Textbox (UserForm) festlegen
08.09.2003 12:36:47
ChrisL
Hi Lars


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



Private Sub TextBox2_AfterUpdate()
If IsDate(TextBox2) Then TextBox2 = Format(TextBox2, "TT.MM.JJJJ")
End Sub



Gruss
Chris
Anzeige
AW: Datumsformat für Textbox (UserForm) festlegen
08.09.2003 12:41:54
Lars
Dankeschön Chris!!!
AW: Datumsformat - funktioniert noch nicht
08.09.2003 12:54:12
Lars
Hallo Chris,

ich habe Deinen Code in die Userform kopiert. Wenn ich die UserForm ausführe akzeptiert er leider keine Eingabe mehr, sprich die Eingabe wird auf "" gesetzt. Weißt Du warum???
AW: Datumsformat - funktioniert noch nicht
08.09.2003 13:30:20
ChrisL
Hi Lars

Versuch mal als Test...

If IsDate(TextBox2) Then TextBox2 = CDate(TextBox2)

Dann die Frage, welches Datumsformat bei dir Standard ist... im Englischen ist es 01/01/2003.

Gruss
Chris
Anzeige
AW: Datumsformat - funktioniert noch nicht
08.09.2003 13:51:06
Lars
Sooo...

...ich hab dann auch noch mal weiter probiert. Das Format "TT.MM.JJJJ" wird leider nicht akzeptiert also habe ich es mit Date versucht. Außerdem habe ich jetzt noch Deinen Code eingefügt. Der aktuelle Code sieht jetzt so aus:


Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, Date)
End Sub



Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox2) Then
If IsDate(TextBox2) Then TextBox2 = CDate(TextBox2)
TextBox2 = ""
Cancel = True
End If
End Sub


Das sieht auch schon nicht mehr ganz so schlecht aus. Allerdings gibt es noch immer einen gravierenden Fehler.

Ich habe eingegeben: 01.01.2003
Es erscheint: 10120038,09.2003

Hast Du eine Idee?
Anzeige
AW: Datumsformat - funktioniert noch nicht
08.09.2003 14:04:05
ChrisL
Versuchs mal hiermit...


Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "dd.mm.yyyy")
End Sub


oder


Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "DD.MM.YYYY")
End Sub





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


Gruss
Chris
Anzeige
AW: Datumsformat - jetzt funktioniert es
08.09.2003 14:14:17
Lars
Hey Chris,

große Freude!!! :o) Es funktioniert! Riesiger Dank!!!

Beste Grüße

Lars
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Datumsformat für Textbox in UserForms festlegen


Schritt-für-Schritt-Anleitung

  1. Öffne deine UserForm in Excel VBA. Klicke dazu auf "Entwicklertools" und wähle "Visual Basic".

  2. Füge eine TextBox hinzu: Klicke auf das TextBox-Symbol in der Toolbox und ziehe es auf deine UserForm.

  3. Doppelklicke auf die TextBox, um den Code-Editor für die TextBox zu öffnen.

  4. Füge den folgenden Code ein, um das Datumsformat auf "dd.mm.yyyy" festzulegen:

    Private Sub TextBox2_AfterUpdate()
       If IsDate(TextBox2) Then
           TextBox2 = Format(TextBox2, "dd.mm.yyyy")
       Else
           TextBox2 = ""
       End If
    End Sub
    
    Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If Not IsDate(TextBox2) Then
           TextBox2 = ""
           Cancel = True
       End If
    End Sub
  5. Speichere und teste deine UserForm. Überprüfe, ob das Datumsformat beim Verlassen der TextBox korrekt übernommen wird.


Häufige Fehler und Lösungen

  • Eingabe wird auf leer gesetzt: Wenn deine Eingabe auf "" gesetzt wird, liegt das wahrscheinlich daran, dass das eingegebene Datum nicht im richtigen Format vorliegt. Stelle sicher, dass du das Datum als "dd.mm.yyyy" eingibst.

  • Falsche Datumsanzeige: Wenn du ein Datum wie "01.01.2003" eingibst und "10120038,09.2003" angezeigt wird, kann dies an einer falschen Formatierung liegen. Überprüfe, ob du den richtigen Format-Befehl verwendest.


Alternative Methoden

  • Verwendung des CDate-Befehls: Du kannst auch CDate verwenden, um die Eingabe in ein Datum zu konvertieren. Ändere die AfterUpdate-Prozedur wie folgt:

    Private Sub TextBox2_AfterUpdate()
       If IsDate(TextBox2) Then
           TextBox2 = CDate(TextBox2)
       End If
    End Sub
  • Eingabeformat vorgeben: Wenn du nur das Datum zulassen möchtest, kannst du das KeyPress-Ereignis nutzen, um die Eingabe zu steuern:

    Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnBoolean)
       If Not (KeyAscii >= 48 And KeyAscii <= 57 Or KeyAscii = 46 Or KeyAscii = 8) Then
           KeyAscii = 0
       End If
    End Sub

Praktische Beispiele

  1. UserForm mit Datumsfeld: Erstelle eine UserForm mit einer TextBox für die Datumseingabe. Stelle sicher, dass die TextBox das Datumsformat "dd.mm.yyyy" berücksichtigt.
  2. Validierung der Eingabe: Implementiere die Validierung, um sicherzustellen, dass nur gültige Datumswerte akzeptiert werden.

Tipps für Profis

  • Standarddatumsformat anpassen: Wenn du in einer anderen Region arbeitest, in der das Datumsformat anders ist, stelle sicher, dass du die regionalen Einstellungen in Excel berücksichtigt hast.
  • Fehlermeldungen einfügen: Füge eine Fehlermeldung hinzu, die dem Benutzer anzeigt, was falsch ist, wenn die Eingabe nicht gültig ist.

FAQ: Häufige Fragen

1. Wie kann ich das Datumsformat auf "dd/mm/yyyy" ändern?
Ändere einfach den Format-String in der AfterUpdate-Prozedur zu "dd/mm/yyyy".

2. Was mache ich, wenn die Eingabe leer bleibt?
Prüfe, ob die Eingabe im richtigen Format vorliegt. Stelle sicher, dass die Validierung korrekt implementiert ist.

3. Kann ich auch andere Formate zulassen?
Ja, du kannst verschiedene Formate zulassen, indem du die entsprechenden Format-Befehle in deinem VBA-Code anpasst.

4. Wie verhindere ich, dass Benutzer ungültige Daten eingeben?
Nutze das KeyPress-Ereignis, um die Eingabe zu steuern, und stelle sicher, dass nur Zahlen und Trennzeichen akzeptiert werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige