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

Problem bei Enter-Event in Textbox

Forumthread: Problem bei Enter-Event in Textbox

Problem bei Enter-Event in Textbox
14.04.2015 18:20:22
Kristian
Hallo zusammen,
ich habe folgendes Problem in einem Userform. Ich nutze einen Barcode Scanner. Dieser liest einfach die Daten ein und nutzt nach dem Einlesen . Da ich die Daten in eine Textbox einlesen lasse um sie weiter zu nutzen, habe ich die Enter-Taste abgefangen. Das funktioniert auch super. Dennoch möchte ich, dass nach der Enter-Taste wieder die Textbox aktiviert wird. Mit setFocus bin ich nicht erfolgreich - kann da jemand helfen?
Hier der Code-Auszug
Private Sub tb_ean_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
tb_ean.SetFocus
If tb_ean.Value = "" Then
MsgBox "Kein Wert angegeben"
Call Abbruch
Exit Sub
End If
Set rng = ActiveSheet.Range("EAN").Find(what:=tb_ean.Value, MatchCase:=True)
If rng Is Nothing Then
With lbl_info
.BackColor = &H80FF&
.Caption = "Eintrag nicht in Datenbank vorhanden!"
.ForeColor = &H0&
.Font.Size = 30
End With
Call Abbruch
Else
'Prüfen ob Gerät schon ausgegeben
If Cells(rng.Row, rng.Column + 3).Value = "Ausgegeben" Then
MsgBox "Gerät bereits ausgegeben"
Call Abbruch
Exit Sub
End If
Call test
End If
tb_ean.SetFocus
End If
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Enter-Event in Textbox
14.04.2015 21:44:36
Luschi
Hallo Kristian,
schau mal hier: https://msdn.microsoft.com/de-de/library/gg278459.aspx
ob Du mit den TextBox-Eigenschaften 'EnterKeyBehavior' & 'MultiLine' was anfangen kannst.
Wenn beide Eigenschaften den Wert 'True' haben, bleibt der Focus in der TextBo0x und es wird 1 Zeilenwechsel erzeugt. Alles andere ist nur Rumstocherei, da sonst mit der Entertaste das Textfeld verlassen wird.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Problem bei Enter-Event in Textbox
15.04.2015 17:30:15
Kristian
Hallo Luschi und vielen Dank für deine Hilfe.
Das ganze hat soweit funktioniert - doch dann trat ein neues und mir nicht erklärbares Problem auf.
Sobald das Makro ausgeführt wurde, wurde die Zelle mit
tb_ean.value = ""

geleert und der Fokus war wieder dort. Doch seltsamer weise, war immer eine Leerzeile vor der eigentlichen Eingabe. Dies konnte man so aber nicht erkennen, hat aber das Makro bei einem neuen Durchlauf um Abbruch gebracht.
Ich habe das ganze nun so gelöst, dass ich die anderen Steuerelemente auf Status "TabStop = False" gesetzt habe und sie tatsächlich nur noch durch Klicken erreichbar sind.

Anzeige
Wenn gelöst => Geschlossen!
16.04.2015 11:20:19
EtoPHG

;
Anzeige
Anzeige

Infobox / Tutorial

Problembehebung für das Enter-Event in einer Textbox


Schritt-für-Schritt-Anleitung

Um das Enter-Event in einer Textbox richtig zu handhaben, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein UserForm hinzu, falls noch nicht vorhanden.

  3. Platziere eine TextBox (z.B. tb_ean) auf dem UserForm.

  4. Klicke mit der rechten Maustaste auf die TextBox und wähle "Code anzeigen".

  5. Füge den folgenden Code in das TextBox-Event KeyDown ein:

    Private Sub tb_ean_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       If KeyCode = 13 Then ' 13 ist der ASCII-Code für Enter
           If tb_ean.Value = "" Then
               MsgBox "Kein Wert angegeben"
               Exit Sub
           End If
           tb_ean.SetFocus ' Setzt den Fokus zurück auf die TextBox
       End If
    End Sub
  6. Schließe den VBA-Editor und teste dein UserForm.


Häufige Fehler und Lösungen

Problem: Der Fokus bleibt nicht in der TextBox, nachdem die Enter-Taste gedrückt wurde.
Lösung: Stelle sicher, dass du tb_ean.SetFocus nach der Überprüfung des Wertes aufrufst. Wenn der Focus nicht gesetzt wird, könnte das an anderen Steuerelementen liegen, die den Fokus annehmen.

Problem: Leerzeilen werden bei der Eingabe erzeugt.
Lösung: Achte darauf, dass du die TextBox nach der Verarbeitung mit tb_ean.Value = "" korrekt zurücksetzt. Dies kann durch das Setzen von TabStop = False für andere Steuerelemente unterstützt werden.


Alternative Methoden

Wenn du das Excel VBA Textbox Enter Event anders handhaben möchtest, kannst du auch die Eigenschaften EnterKeyBehavior und MultiLine verwenden:

  1. Setze EnterKeyBehavior auf True, um zu verhindern, dass der Fokus die TextBox verlässt.
  2. Aktiviere MultiLine, wenn du mehrere Zeilen in der TextBox zulassen möchtest.

Diese Eigenschaften sind besonders nützlich, wenn du mit Barcode-Scannern arbeitest, die automatisch den Enter-Key senden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie man das Enter-Key Behavior in einer TextBox umsetzt:

Private Sub tb_ean_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then ' Enter-Taste
        If tb_ean.Value = "" Then
            MsgBox "Bitte Wert eingeben."
        Else
            ' Hier kannst du deine Logik einfügen, z.B. nach einem Wert suchen
        End If
        tb_ean.SetFocus ' Fokus zurück auf die TextBox
    End If
End Sub

Tipps für Profis

  • Nutze die KeyPress- und KeyUp-Events, um noch mehr Kontrolle über die Eingaben in der TextBox zu erhalten.
  • Überprüfe die Eigenschaften der TextBox, insbesondere EnterKeyBehavior, um unerwartetes Verhalten bei der Eingabe zu vermeiden.
  • Experimentiere mit verschiedenen Steuerelementen, um die Interaktivität deines UserForms zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich das Verhalten der Enter-Taste in einer TextBox anpassen?
Du kannst das Verhalten anpassen, indem du die KeyDown-Ereignisprozedur in VBA verwendest und dort die Logik für die Enter-Taste implementierst.

2. Was mache ich, wenn der Fokus nicht korrekt zurückgesetzt wird?
Vergewissere dich, dass keine anderen Steuerelemente den Fokus annehmen und dass SetFocus korrekt aufgerufen wird.

3. Welche Excel-Version benötige ich für die Verwendung von UserForms?
UserForms sind in Excel ab der Version 2000 verfügbar. Stelle sicher, dass du eine kompatible Version verwendest, um VBA und UserForms nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige