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

SetFocus nach ENTER nächste Textbox Wie ???

Forumthread: SetFocus nach ENTER nächste Textbox Wie ???

SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 11:41:08
walter
Hallo,
ich glaube ich brauche jetzt einen Fachmann.
Habe schon über Excel-Recherche gesucht, leider ohne Erfolg.
Frage:
Ich möchte nach der Eingabe von Zahlen oder Text mit der ENTER Taste betätigen in
die nächste TEXTBOX.
Mit der TAB-Taste kann ich die nächste Textbox "anspringen", jedoch nicht mit ENTER.
Ich hoffe das mir jemand einen Tip geben kann.
Gruss Walter

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 12:08:16
Knut
Normaler Weise entspricht die Enter- Taste Ok und beendet einen
Dialog. Warum willst du das unbedingt anders machen?
Option Explicit

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then TextBox2.SetFocus
End Sub

Knut

Anzeige
AW: SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 12:59:40
walter
Hallo Knut,
Danke.
Ich möchte nach der Eingabe mit Enter zur nächsten Textbox, weil das schneller ist.
Wie gesagt mit der TAB - Taste kann ich ja auch weiter gehen.
Habe einfach dein Makro kopiert, mit Enter ging nur in nächste Textbox2, muß ich sonst noch was machen ?
Gruss Walter

Anzeige
AW: SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 13:06:13
Knut
Du musst für jede Textbox den Code kopieren.
Knut

AW: SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 15:25:21
walter
Hallo Knut,
mein Makro sieht so aus:

Private Sub TextBox4_Change()                       '<< hiermit schreibt direkt rein
' und selekttiert TextBox 4
Application.ScreenUpdating = False
If IsNumeric(TextBox4) = False And TextBox4 <> "" Then
MsgBox " Es sind nur ZAHLEN erlaubt ! "
TextBox4 = "0.000,00"
With TextBox3                               'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
With TextBox4                                   'muß unbedingt hier stehen
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If                                      'End if muß hier stehen,
'sonst steht Setfocus in Textbox 3
Worksheets("Datenbank").Range("A15") = CDbl(TextBox4)
'so schreibt Richtig als Zahl Rechtsbündig
Application.ScreenUpdating = True
End Sub

Jetzt meine blöde Frage: Wo setze ich die Zeilen hin, oder muß ich dein Makro
hinter oder vor mein Makro hin kopieren ???
Entschuldige aber ich bin nicht so perfekt!
Gruss WAlter

Anzeige
AW: SetFocus nach ENTER nächste Textbox Wie ???
12.07.2003 19:09:21
Knut
Das ist eine eigene Prozedur, die mit Textbox_Change nichts
zu tun hat.
Knut

AW: SetFocus nach ENTER Danke
13.07.2003 10:02:43
walter
Guten Morgen Knut,
herzlichen Dank.
Ich war etwas verunsichert.
Gruss Walter

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

SetFocus nach ENTER in Excel-Textfeldern


Schritt-für-Schritt-Anleitung

Um die Eingabe in einer Textbox mit der ENTER-Taste zur nächsten Textbox zu lenken, kannst du den folgenden VBA-Code verwenden. Dieser Code muss für jede Textbox, die du ansprechen möchtest, angepasst werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge eine Userform hinzu, falls du noch keine hast.

  3. Füge deine Textboxen (z.B. TextBox1, TextBox2, ... TextBox4) zur Userform hinzu.

  4. Klicke auf die erste Textbox und füge diesen Code in das Codefenster ein:

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       If KeyCode = 13 Then TextBox2.SetFocus
    End Sub
  5. Wiederhole diesen Schritt für jede Textbox und passe den Code entsprechend an (z.B. von TextBox2 zu TextBox3 usw.).

  6. Schließe den VBA-Editor und teste deine Userform.


Häufige Fehler und Lösungen

  • Fehler: Die ENTER-Taste funktioniert nicht.

    • Lösung: Stelle sicher, dass der Code in der richtigen Textbox eingefügt wurde und dass du die richtige KeyCode-Zahl (13 für ENTER) verwendest.
  • Fehler: Der Fokus springt nicht zur nächsten Textbox.

    • Lösung: Überprüfe, ob die Textboxen richtig benannt sind und dass für jede Textbox ein entsprechender KeyDown-Event vorhanden ist.

Alternative Methoden

Anstatt VBA zu verwenden, kannst du auch die TAB-Taste nutzen, um zwischen Textboxen zu navigieren. Dies ist eine Standardfunktionalität in Excel-Userforms und funktioniert ohne zusätzliche Programmierung.

Wenn du keine ENTER-Taste verwenden möchtest, kannst du auch überlegen, die Navigation über Schaltflächen zu ermöglichen, die den Fokus zur nächsten Textbox setzen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie die ENTER-Taste zum Wechseln zwischen zwei Textboxen verwendet wird:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then TextBox2.SetFocus
End Sub

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then TextBox3.SetFocus
End Sub

In diesem Beispiel wird beim Drücken der ENTER-Taste von TextBox1 auf TextBox2 und dann auf TextBox3 gewechselt.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Fehler zu vermeiden, indem es sicherstellt, dass alle Variablen deklariert werden.
  • Schalte Bildschirmaktualisierung aus: Verwende Application.ScreenUpdating = False, um flüssigere Übergänge zu gewährleisten, während du mit Textboxen arbeitest.
  • Behandle Fehler: Füge Error-Handling ein, um unvorhergesehene Eingaben zu verarbeiten und den Benutzer entsprechend zu informieren.

FAQ: Häufige Fragen

1. Frage
Warum funktioniert mein Makro nicht?
Antwort: Stelle sicher, dass der Code im richtigen Bereich eingefügt wurde und dass die Textboxen korrekt benannt sind.

2. Frage
Kann ich die ENTER-Taste für andere Funktionen nutzen?
Antwort: Ja, aber du musst den Code entsprechend anpassen, um die gewünschten Aktionen auszuführen.

3. Frage
Ich habe viele Textboxen. Muss ich für jede einen eigenen Code schreiben?
Antwort: Ja, du musst für jede Textbox den entsprechenden KeyDown-Event-Code einfügen.

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