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

Forumthread: Enter in TextBox abfangen

Enter in TextBox abfangen
16.08.2005 10:41:38
klamsi
Hoi loitz. Ich mal wieder :D
Ich würde gerne dass wenn der User in meiner TxtBox "Enter" drückt, eine bestimmte Aktion ausgeführt wird.
Das Internet meint dazu:

Sub TxtBoxInsert_KeyUp/KeyDown/KeyPress(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyAscii = vbKeyReturn Then
MsgBox ("test")
End If
End Sub

Will aber nicht so wirklich funzen :(
Vielleicht geht es irgendwie mit
'InStr() ?
Kann mir da jemand weiterhelfen?
Greetz,
klamsi ... wiedermal *gg*
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Enter in TextBox abfangen
16.08.2005 10:45:44
Hajo_Zi
Hallo klamsi
Private Sub TextBox1_AfterUpdate()
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: Enter in TextBox abfangen
16.08.2005 10:50:12
klamsi
Private Sub TextBox1_AfterUpdate() ?
Und was soll in der Prozedur als Abfrage stehen?
Mit
If KeyAscii = vbKeyReturn Then
MsgBox ("test")
End If
gehtz bei mir auf jeden fall net...
:(
Hilf nen alten Mann mal auf die Sprünge wie du das meinst ;-)
AW: Enter in TextBox abfangen
16.08.2005 10:47:43
Nepumuk
Hi,
so:
Private Sub TextBox1_KeyDown(ByVal KeyCode As _
        MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = vbKeyReturn Then MsgBox "Enter gedrückt"
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Enter in TextBox abfangen
16.08.2005 10:48:17
Matthias
Hallo Klamsi,

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
MsgBox "Enter"
End If
End Sub

Gruß Matthias
AW: Enter in TextBox abfangen
16.08.2005 10:56:48
klamsi
Juhuu ^^
Klappt beides wunderbar ^^
Vielen Dank :)
Grüße,
klamsi
Anzeige
AW: Enter in TextBox abfangen
16.08.2005 11:04:55
klamsi
Hui, nu hab ich aber wieder ein Prob:
Normaler Weise habe ich für den Zeilenumbruch immer "ALT+Enter" gedrückt, das geht jetzt aber nicht mehr, weil jetzt immer meine Prozedur bei "Enter", sowie bei "ALT+Enter" startet.
Was nun?
Gibtz ne Abfrage wo man Alt+Enter von Enter trennen kann?
Anzeige
AW: Enter in TextBox abfangen
16.08.2005 11:14:49
Matthias
Hallo Klamsi,
frage sie Variable "Shift" noch ab:
Bei Shift-Taste: 1
bei Strg-Taste: 2
bei Alt-Taste: 4
Kombinationen ergeben die Summe, z.B. Alt+Shift: 5
Gruß Matthias
AW: Enter in TextBox abfangen
16.08.2005 13:39:32
klamsi
Ne das klappt leider auch nicht :(
AW: Enter in TextBox abfangen
16.08.2005 15:06:22
Nepumuk
Hi,
Zeilenumbruch geht bei mir nur mit Strg+Enter.
Private Sub TextBox1_KeyDown(ByVal KeyCode As _
        MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = vbKeyReturn And Shift <> 2 Then _
        MsgBox "Enter gedrückt"
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Enter in TextBox abfangen


Schritt-für-Schritt-Anleitung

Um die Enter-Taste in einer TextBox in Excel VBA abzufangen, kannst Du die KeyDown-Ereignisprozedur verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Füge ein UserForm hinzu, falls Du noch keines hast.
  3. Füge eine TextBox zu Deinem UserForm hinzu (z. B. TextBox1).
  4. Doppelklicke auf die TextBox, um die Codeansicht zu öffnen.
  5. Füge den folgenden Code in die TextBox-Prozedur ein:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        MsgBox "Enter gedrückt"
    End If
End Sub
  1. Schließe den VBA-Editor und teste das UserForm. Wenn Du die Enter-Taste drückst, wird die Nachricht angezeigt.

Häufige Fehler und Lösungen

  • Problem: Die Nachricht wird nicht angezeigt, wenn Enter gedrückt wird.
    Lösung: Stelle sicher, dass Du den richtigen KeyCode verwendest. Nutze vbKeyReturn statt 13.

  • Problem: Der Zeilenumbruch funktioniert nicht mehr mit ALT + Enter.
    Lösung: Verwende eine Abfrage für den Shift-Parameter:

If KeyCode = vbKeyReturn And Shift <> 2 Then
    MsgBox "Enter gedrückt"
End If

Hierbei ist Shift = 2 für die ALT-Taste.


Alternative Methoden

Wenn Du die Enter-Taste in einer TextBox abfangen möchtest, kannst Du auch folgende Ereignisse verwenden:

  • KeyPress: Hier kannst Du den ASCII-Code für Enter abfangen. Beispiel:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 13 Then
        MsgBox "Enter gedrückt"
    End If
End Sub
  • AfterUpdate: Dieses Ereignis wird ausgelöst, nachdem der Benutzer die TextBox verlässt. Es eignet sich jedoch nicht für sofortige Reaktionen auf die Enter-Taste.

Praktische Beispiele

  1. Einfaches Beispiel: Verwende den KeyDown-Event, um eine Meldung anzuzeigen, wenn Enter gedrückt wird.

  2. Erweiterte Funktionalität: Du kannst die Eingabe in der TextBox verarbeiten, bevor die Nachricht angezeigt wird:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        MsgBox "Eingegebener Text: " & TextBox1.Text
    End If
End Sub
  1. Zeilenumbruch ermöglichen: Wenn Du ALT + Enter für einen Zeilenumbruch nutzen möchtest, kombiniere die Shift-Überprüfung wie zuvor beschrieben.

Tipps für Profis

  • Experimentiere mit verschiedenen KeyCodes, um andere Tasten zu überwachen.
  • Nutze das KeyDown-Event für eine bessere Kontrolle über die Eingaben.
  • Achte darauf, dass Du die Benutzererfahrung im Blick behältst. Zu viele Meldungen können störend sein.

FAQ: Häufige Fragen

1. Wie kann ich den ASCII-Code für andere Tasten herausfinden?
Du kannst die KeyPress-Ereignisprozedur verwenden und die Value des KeyAscii-Parameters in einer MsgBox anzeigen lassen.

2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren in Excel VBA, unabhängig von der Version, solange es VBA unterstützt.

3. Was ist der Unterschied zwischen KeyDown und KeyPress?
KeyDown wird ausgelöst, wenn eine Taste gedrückt wird, während KeyPress für Tasten mit ASCII-Werten (wie Buchstaben und Zahlen) zuständig ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige