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

Forumthread: entertaste in einer userform

entertaste in einer userform
Peter
Hi Excels,
in einer Userform habe ich 7 Textboxen und einen CommandButton1.
Bei der Eingabe von Text in die Textboxen schalte ich mit Enter in die nächste Textbox.Nun soll aber nach dem füllen der letzten Textbox durch Enter der CommandButton1 aktiviert werden(Ich muss immer erst mit der Maus den Button drücken).
Es werden dann alle Einträge in ein Tabellenblatt übernommen und die Userform wird wieder geleert.
Ich habe es schon mit SendKeys "{tab}", True versucht aber alles ohne Erfolg.
Danke schon mal für eure Hilfe
Gruss Peter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: entertaste in einer userform
Ingo
In der Entwicklungsumgebung kannst Du mir rechtem mausklick auf die Userform die Aktivierreihenfolge festlegen
m f G
Ingo Christiansen
AW: Das wares nicht !
Peter
Hallo Ingo,
also das ist es leider nicht.
Ich möchte erreichen, dass ich nach füllen aller Textboxen einfach Enter weiter drücke und der Code der hinter dem Button liegt ausgeführt wird.
Alle Einträge ins Tabellenblatt vornehmen die Textboxen leeren und Curser wieder in Textbox1 stellt.
Gruss Peter
Anzeige
AW: Das wares nicht !
Ingo
Doch,
wenn Du in der Aktivierreihenfolge die verschiedenen TextBoxen und zum Schluß den Button hast, springt bei jedem Enterklick der Cursor ein Element weiter. Nach der letzten TextBox und Enter ist der Focus auf dem Button und jetzt führt ein EnterKlick zur Ausführung des Code der hinter dem Button_Clickereignis hinterlegt ist .
m f G
Ingo Christiansen
Anzeige
AW: Das wares nicht !
Peter
Hallo Ingo,
Funktioniert nicht.
Leider bekomme ich auch die Beispieldatei nicht auf den Server.
Wenn das geht melde ich ich mich nochmal.
Danke für deine Mühe
Gruss Peter
AW: Das wares nicht !
Holger
Hallo Peter
Das funzt

Private Sub CommandButton1_Click()
' dein Code
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
und so weiter
TextBox1.SetFocus
End Sub

Gruß holger
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Entertaste in einer Userform aktivieren


Schritt-für-Schritt-Anleitung

Um die Entertaste in einer Userform zu aktivieren und den CommandButton1 auszulösen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne die Entwicklungsumgebung von Excel (drücke ALT + F11).

  2. Wähle die Userform aus, die du bearbeiten möchtest.

  3. Rechtsklick auf die Userform und wähle „Eigenschaften“.

  4. Aktiviere die Reihenfolge der Steuerelemente:

    • Klicke auf die Registerkarte „Tab-Reihenfolge“.
    • Stelle sicher, dass die TextBoxen und der CommandButton1 in der gewünschten Reihenfolge angeordnet sind.
  5. Füge den folgenden Code in das Code-Fenster der Userform ein:

    Private Sub CommandButton1_Click()
       ' Dein Code hier, z.B. Datenübertragung
       TextBox1.Value = ""
       TextBox2.Value = ""
       TextBox3.Value = ""
       ' Setze den Fokus zurück auf die erste TextBox
       TextBox1.SetFocus
    End Sub
  6. Teste die Userform, indem du die Eingabe in den TextBoxen machst und die Entertaste drückst. Nach der letzten TextBox sollte der CommandButton1 aktiviert werden.


Häufige Fehler und Lösungen

  • Fehler: Der Button wird nicht aktiviert, wenn Enter gedrückt wird.

    • Lösung: Überprüfe die Tab-Reihenfolge in den Eigenschaften der Userform. Stelle sicher, dass der CommandButton am Ende der Reihenfolge steht.
  • Fehler: Der Fokus springt nicht zurück zur ersten TextBox.

    • Lösung: Achte darauf, dass du TextBox1.SetFocus im CommandButton1_Click-Ereignis verwendest, um den Fokus zurückzusetzen.

Alternative Methoden

Falls die oben genannten Schritte nicht funktionieren, kannst du die Entertaste auch manuell abfangen:

  1. Füge das folgende Ereignis in das Code-Fenster deiner Userform ein:

    Private Sub TextBox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       If KeyAscii = vbKeyReturn Then
           CommandButton1_Click
           KeyAscii = 0 ' Verhindert den Standard-Enter-Effekt
       End If
    End Sub
  2. Ändere TextBox7 auf die letzte TextBox, die du hast.


Praktische Beispiele

Hier ist ein Beispiel für einen vollständigen Code in einer Userform mit mehreren TextBoxen und einem CommandButton:

Private Sub CommandButton1_Click()
    ' Hier wird angenommen, dass die Daten in ein Tabellenblatt übertragen werden
    Sheets("Daten").Cells(1, 1).Value = TextBox1.Value
    Sheets("Daten").Cells(1, 2).Value = TextBox2.Value
    ' Setze Textboxen zurück
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox1.SetFocus
End Sub

Private Sub TextBox7_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = vbKeyReturn Then
        CommandButton1_Click
        KeyAscii = 0
    End If
End Sub

Dieses Beispiel zeigt, wie man die Werte der TextBoxen in ein Tabellenblatt überträgt und gleichzeitig den Fokus zurücksetzt.


Tipps für Profis

  • Verwende den KeyDown-Event anstelle von KeyPress, um noch mehr Kontrolle über die Tasteneingaben zu haben.
  • Nutze UserForm_Initialize, um Standardwerte in den TextBoxen festzulegen.
  • Verwende Fehlerbehandlungsroutinen, um sicherzustellen, dass die Userform robust ist und unerwartete Eingaben verarbeitet.

FAQ: Häufige Fragen

1. Wie kann ich verhindern, dass die Entertaste eine neue Zeile erzeugt?
Um zu verhindern, dass die Entertaste eine neue Zeile erzeugt, setze KeyAscii = 0 im KeyPress-Ereignis.

2. Funktioniert das auch in Excel 2016?
Ja, die beschriebenen Methoden sind in Excel 2010 und höher anwendbar, einschließlich Excel 2016.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige