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

User muß textbox mit "ENTER" verlassen

Forumthread: User muß textbox mit "ENTER" verlassen

User muß textbox mit "ENTER" verlassen
17.02.2005 09:27:41
ray
Hallo,
wie kann ich erzwingen, daß der User nach Eingabe in der Textbox1, diese nur mit ENTER und nicht mit TAB oder einfach WOANDERSmausKlick verlassen kann?
Viele Grüße aus dem immer noch zu kalten Hamburg, diesig 5 Grad.
ray
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: User muß textbox mit "ENTER" verlassen
Heiko
Hallo Ray,
spiele mal diesen Code in das Codefenster deines Userforms, ist zwar nicht schön aber er funktioniert.
Option Explicit
Public blnEnter As Boolean

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If blnEnter = False Then
Cancel = True
Else
blnEnter = False
End If
End Sub


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
MsgBox TextBox1.Value
blnEnter = True
End If
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: User muß textbox mit "ENTER" verlassen
17.02.2005 13:13:08
ray
Hallo Heiko,
finde ich gar nicht so kompliziert. Danke für die Lösung, funzt einwandfrei.
Gruß Ray
AW: User muß textbox mit "ENTER" verlassen
17.02.2005 11:17:22
Roland
Hallo ray,
versuch das mal:
Option Explicit
Dim booCheck As Boolean

Private Sub TextBox1_Enter()
booCheck = True
End Sub


Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If booCheck Then
TextBox1.SetFocus
Cancel = True
End If
End Sub


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode <> 13 Then
MsgBox KeyCode
booCheck = True
Else
booCheck = False
End If
End Sub

Gruß Roland aus Berlin (etwas klarer, aber dafür kälter)
Anzeige
AW: User muß textbox mit "ENTER" verlassen
17.02.2005 13:14:46
ray
Hallo Roland,
vielen Dank, funzt auch einwandfrei. Grüße die Hauptstadt aus der schönsten Stadt...
ray
;
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Excel-Userform mit ENTER verlassen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass ein Benutzer die Textbox in einer Excel-Userform nur mit der ENTER-Taste verlässt, kannst du den folgenden VBA-Code verwenden. Dieser Code muss in das Codefenster deiner Userform eingefügt werden.

  1. Öffne deine Excel-Datei und gehe zu den Entwicklertools.
  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
  3. Suche deine Userform und öffne das Codefenster.
  4. Füge den folgenden Code ein:
Option Explicit
Public blnEnter As Boolean

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If blnEnter = False Then
        Cancel = True
    Else
        blnEnter = False
    End If
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        MsgBox TextBox1.Value
        blnEnter = True
    End If
End Sub
  1. Schließe den VBA-Editor und teste deine Userform. Die Textbox sollte nun nur mit der ENTER-Taste verlassen werden können.

Häufige Fehler und Lösungen

  • Fehler: Textbox wird nicht verlassen.

    • Stelle sicher, dass du den Code korrekt in das entsprechende Userform-Codefenster eingefügt hast.
  • Fehler: MsgBox zeigt falsche Werte an.

    • Überprüfe, ob die TextBox den richtigen Namen hat (in diesem Beispiel "TextBox1").
  • Fehler: ENTER funktioniert nicht.

    • Vergewissere dich, dass die KeyDown-Ereignisprozedur nicht durch andere Ereignisse oder Codes blockiert wird.

Alternative Methoden

Eine alternative Methode besteht darin, den Code wie folgt zu ändern, um sicherzustellen, dass der Benutzer die Textbox nicht mit der Maus oder der TAB-Taste verlässt:

Dim booCheck As Boolean

Private Sub TextBox1_Enter()
    booCheck = True
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If booCheck Then
        TextBox1.SetFocus
        Cancel = True
    End If
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode <> 13 Then
        MsgBox KeyCode
        booCheck = True
    Else
        booCheck = False
    End If
End Sub

Diese Methode ist besonders nützlich, wenn du mehr Kontrolle über die Benutzerinteraktion mit der Textbox haben möchtest.


Praktische Beispiele

  1. Beispiel 1: Verwende den Code in einer Userform für die Dateneingabe, um sicherzustellen, dass Benutzer die Eingaben nicht versehentlich mit der Maus verlassen.
  2. Beispiel 2: Implementiere diesen Code in einem Formular zur Erfassung von Kundeninformationen, um sicherzustellen, dass die Daten korrekt eingegeben werden, bevor sie weiterverarbeitet werden.

Tipps für Profis

  • Achte darauf, die Benutzeroberfläche deiner Userform klar und intuitiv zu gestalten. Wenn der Benutzer versteht, dass die Eingabe in der Textbox erforderlich ist, wird er weniger geneigt sein, die Eingabe zu unterbrechen.
  • Nutze die MsgBox, um hilfreiche Hinweise zu geben, falls der Benutzer versucht, die Textbox mit der TAB-Taste oder der Maus zu verlassen.
  • Überlege, ob du zusätzliche Validierungen einfügen möchtest, um sicherzustellen, dass die Eingaben in der Textbox den gewünschten Kriterien entsprechen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehrere Textboxen zu verwalten?
Du kannst den Code für jede Textbox anpassen, indem du eine separate Variable für jede Textbox verwendest oder einen generischen Code schreibst, der für alle Textboxen gilt.

2. Funktioniert dieser Code in Excel 2016 und höher?
Ja, der Code funktioniert in Excel 2016 und höheren Versionen, da die VBA-Umgebung und die Ereignisprozeduren konsistent sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige