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
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
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
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.
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
Fehler: Textbox wird nicht verlassen.
Fehler: MsgBox zeigt falsche Werte an.
Fehler: ENTER funktioniert nicht.
KeyDown-Ereignisprozedur nicht durch andere Ereignisse oder Codes blockiert wird.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.
MsgBox, um hilfreiche Hinweise zu geben, falls der Benutzer versucht, die Textbox mit der TAB-Taste oder der Maus zu verlassen.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.