Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SetFocus - Inhalt Textbox markieren

SetFocus - Inhalt Textbox markieren
Thomas
Hallo,
dank Eurer Mithilfe bin ich beim meinem "Projekt" schon gut vorangekommen. Ich habe noch ein paar Kleinigkeiten zu verschönern:
Wurde in der Textbox4 die Prüfziffer falsch eingegeben, erscheint eine MsgBox und der Focus wird wieder auf diese Textbox gesetzt, ansonsten wird der Focus auf die nächste Textbox5 gesetzt. So weit so gut:
...
If Pruefz > Val(TextBox4.Text) Then
msgprztext = "Achtung die richtige Prüfziffer lautet " & Pruefz & " !"
MsgBox (msgprztext)
TextBox4.SetFocus
Else
TextBox5.SetFocus
End If
...
Wurde die Prüfziffer falsch eingegeben, steht der Cursor dann hinter der falschen Ziffer. Es wäre schön, wenn der Inhalt der Textbox gleich markiert wäre. Über die EnterFieldBehavior-Eigenschaft geht das offenbar nicht (nur für Tab-Taste, nicht bei SetFocus). Wie kann man das lösen?
Danke fürs Grübeln ... viele Grüße
Thomas
Anzeige

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

Betreff
Benutzer
Anzeige
AW: SetFocus - Inhalt Textbox markieren
Bert
Schau mal unter SelStart, SelLenght
Bert
AW: SetFocus - Inhalt Textbox markieren
Karl-Otto
Hallo Thomas
Versuch das einzubauen:
With TextBox4
.SetFocus
.SelStart = 1
.SelLength = 8
End With
Gruß
Karl-Otto
AW: SetFocus - Inhalt Textbox markieren
Thomas
Hallo Bert und Karl-Otto,
jetzt funktioniert es ... super:
With TextBox4
.SelStart = 0
.SelLength = 8
.SetFocus
End With
Vielen vielen Dank für den Tip ...
Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox-Inhalt mit SetFocus in VBA markieren


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Textbox in VBA zu markieren, wenn der Fokus auf diese Textbox gesetzt wird, kannst du die folgenden Schritte befolgen:

  1. Öffne dein VBA-Editor und wähle das entsprechende Formular aus.

  2. Identifiziere die Textbox, deren Inhalt du markieren möchtest. In diesem Beispiel verwenden wir TextBox4.

  3. Verwende den folgenden Code, um den Fokus auf die Textbox zu setzen und gleichzeitig den Inhalt zu markieren:

    With TextBox4
       .SetFocus
       .SelStart = 0                ' Beginne am Anfang des Textes
       .SelLength = Len(.Text)      ' Markiere den gesamten Text
    End With
  4. Füge diese Logik in deine Bedingung ein, um sicherzustellen, dass der Fokus nur dann auf die Textbox gesetzt wird, wenn die Eingabe falsch ist:

    If Pruefz > Val(TextBox4.Text) Then
       msgprztext = "Achtung die richtige Prüfziffer lautet " & Pruefz & " !"
       MsgBox (msgprztext)
       With TextBox4
           .SetFocus
           .SelStart = 0
           .SelLength = Len(.Text)
       End With
    Else
       TextBox5.SetFocus
    End If

Häufige Fehler und Lösungen

  • Fehler: Der Cursor wird nicht an den Anfang der Textbox gesetzt.

    • Lösung: Stelle sicher, dass du die SelStart- und SelLength-Eigenschaften direkt nach SetFocus festlegst.
  • Fehler: Der Inhalt der Textbox wird nicht markiert.

    • Lösung: Überprüfe, ob du die Länge des Textes korrekt mit Len(.Text) ermittelst und an SelLength übergibst.

Alternative Methoden

Wenn du eine andere Methode zur Markierung des Textes in einer Textbox verwenden möchtest, kannst du auch die EnterFieldBehavior-Eigenschaft in Betracht ziehen. Beachte jedoch, dass diese nur bei der Verwendung der Tab-Taste funktioniert.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die SetFocus-Methode und die Markierung des Textes in einer Textbox kombinieren kannst. Angenommen, du hast ein Formular mit zwei Textboxen, TextBox4 und TextBox5, und du möchtest sicherstellen, dass bei fehlerhaften Eingaben der Fokus immer wieder auf TextBox4 gesetzt wird:

Private Sub CommandButton1_Click()
    If Pruefz > Val(TextBox4.Text) Then
        MsgBox "Achtung die richtige Prüfziffer lautet " & Pruefz & " !"
        With TextBox4
            .SetFocus
            .SelStart = 0
            .SelLength = Len(.Text)
        End With
    Else
        TextBox5.SetFocus
    End If
End Sub

Tipps für Profis

  • Nutze die SelStart- und SelLength-Eigenschaften immer direkt nach der SetFocus-Methode, um sicherzustellen, dass der Fokus und die Markierung korrekt gesetzt sind.
  • Teste deinen Code regelmäßig, besonders wenn du Bedingungen und Fokuswechsel implementierst. Dies hilft, unerwartete Fehler frühzeitig zu erkennen.

FAQ: Häufige Fragen

1. Wie kann ich den Fokus auf eine andere Textbox setzen?
Verwende einfach TextBox5.SetFocus an der Stelle, wo du den Fokus setzen möchtest.

2. Was ist, wenn ich mehrere Textboxen habe?
Du kannst denselben Ansatz für jede Textbox verwenden, indem du den entsprechenden Namen in deinem Code anpasst.

3. Funktioniert das auch in Excel-Versionen vor 2016?
Ja, die Methoden, die hier beschrieben sind, sollten in den meisten Versionen von Excel funktionieren, die VBA unterstützen.

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