Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textfeld aktivieren

Textfeld aktivieren
Annette
Hallo,
über ein Interface werden Messdaten an Excel geschickt. Das Ganze funktioniert wie eine Tastatureingabe, welche mit Enter angeschlossen wird.
Von diesen Daten soll der Minimal und Maximalwert ermittelt werden.
Um die Messreihen in ein Exceltabelle zu bringen möchte ich eine Userform benutzen.
In einer Textbox soll nun der aktuelle Messwert angezeigt werden. Jedoch wird nach der Übertragung des 1. Messwertes das nächste Steuerelement aktiviert. Der Cursor soll jedoch in der Textbox bleiben und die nächste Eingabe soll den aktuellen Wert überschreiben.
Der Befehl

TextBox1.SetFocus
oder

Textbox1.Activate
funktioniert nicht.
Hier meine bisherige Sub:
Private Sub TextBox1_AfterUpdate()
TextBox1.SetFocus
End Sub
Könnt ihr mir helfen?
Danke!
Grüße Annette
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Textfeld aktivieren
18.07.2010 18:59:00
Tino
Hallo,
versuch mal so.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = True
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1)
End Sub
Gruß Tino
AW: Textfeld aktivieren
18.07.2010 19:47:31
Annette
Danke Tino für deine schnelle Antwort.
Leider funktioniert meine Sub

Private Sub CommandButton1_Click()
nun nicht mehr.
Könnt ihr mir nochmal helfen?
Grüße
Annette
Anzeige
AW: Textfeld aktivieren
18.07.2010 20:13:24
Tino
Hallo,
versuch mal so und fangen den Code mittels der Tag Eigenschaft ab.
Private Sub CommandButton1_Click()
TextBox1.Tag = "1"
'Dein Code
TextBox1.Tag = ""
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Tag = "" Then
Cancel = True
TextBox1.SelStart = 0
TextBox1.SelLength = Len(TextBox1)
End If
End Sub
Gruß Rino
Anzeige
noch etwas
18.07.2010 20:17:06
Tino
Hallo,
stell die TakeFocusOnClick Eigenschaft des Buttons auf False.
Gruß Tino
;
Anzeige
Anzeige

Infobox / Tutorial

Textfeld aktivieren in Excel


Schritt-für-Schritt-Anleitung

Um ein Excel Textfeld in einer Userform zu aktivieren, gehst du folgendermaßen vor:

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (Alt + F11).
  2. Füge eine Userform hinzu, falls du noch keine hast.
  3. Platziere ein Textfeld (TextBox) auf der Userform.
  4. Füge einen CommandButton hinzu, um die Eingabe zu bestätigen.
  5. Verwende den folgenden VBA-Code, um das Textfeld zu aktivieren:
Private Sub CommandButton1_Click()
    TextBox1.Tag = "1"
    ' Dein Code hier
    TextBox1.Tag = ""
End Sub

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Tag = "" Then
        Cancel = True
        TextBox1.SelStart = 0
        TextBox1.SelLength = Len(TextBox1)
    End If
End Sub

Dieser Code sorgt dafür, dass nach dem Klicken auf den Button das Textfeld aktiv bleibt und du den aktuellen Messwert überschreiben kannst.


Häufige Fehler und Lösungen

  1. Problem: Der Cursor springt nach dem ersten Wert in ein anderes Steuerelement.

    • Lösung: Verwende den TextBox1.Tag Mechanismus, um zu verhindern, dass das Textfeld den Fokus verliert.
  2. Problem: Der Code für den CommandButton funktioniert nicht mehr.

    • Lösung: Achte darauf, dass du die Tag-Eigenschaft entsprechend setzt und zurücksetzt, wie im obigen Beispiel gezeigt.

Alternative Methoden

Eine andere Möglichkeit, um das Textfeld aktiv zu halten, ist die Verwendung der TakeFocusOnClick-Eigenschaft des Buttons. Setze diese Eigenschaft auf False, um zu verhindern, dass der Button den Fokus übernimmt.


Praktische Beispiele

Hier ist ein praktisches Beispiel für die Verwendung von VBA TextBox aktivieren:

Private Sub CommandButton1_Click()
    ' Hier wird der aktuelle Messwert in das Textfeld geschrieben
    TextBox1.Value = "Aktueller Messwert: " & GetCurrentMeasurement()
    TextBox1.SetFocus
End Sub

Private Function GetCurrentMeasurement() As Double
    ' Beispielhafte Funktion, die einen Messwert zurückgibt
    GetCurrentMeasurement = Rnd() * 100 ' Zufallswert zwischen 0 und 100
End Function

In diesem Beispiel wird der aktuelle Messwert in das Textfeld geschrieben und das Textfeld bleibt aktiv.


Tipps für Profis

  • Stelle sicher, dass das Textfeld groß genug ist, um längere Werte anzuzeigen. Aktiviere den Textüberlauf, falls nötig.
  • Experimentiere mit der SelStart und SelLength-Eigenschaft, um das Verhalten des Textfelds bei der Eingabe zu optimieren.

FAQ: Häufige Fragen

1. Wie aktiviere ich ein Textfeld in Excel VBA?
Du kannst ein Textfeld aktivieren, indem du die SetFocus-Methode im entsprechenden Event verwendest.

2. Was mache ich, wenn mein Textfeld den Fokus verliert?
Stelle sicher, dass du den Cancel-Parameter in der Exit-Ereignisprozedur auf True setzt, um den Fokus im Textfeld zu halten.

3. Wie kann ich den Textüberlauf in einer TextBox aktivieren?
Um den Textüberlauf zu aktivieren, musst du die Eigenschaften des Textfelds im Eigenschaftenfenster anpassen.

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