VBA Textbox fokussieren und Daten über Button eintragen
Hallo, ich stehe mal wieder etwas auf dem Schlauch.
Es ist ein Userform gegeben in dem 2 Textboxen vorhanden sind und 10 Buttons mit Werten 0-9.
Nun möchte ich, dass der Anwender in die Textbox1 klickt und dann die Buttons drückt um die Zahlenwerte dort hinein zu schreiben.
Das funktioniert soweit.
Wenn aber der Anwender in die Textbox 2 klickt, dann sollen die Zahlenwerte der Buttons eben in jene Textbox geschrieben werden.
Ich muss also vorher abfragen, ob der Focus auf Textbox 1 oder 2 liegt/lag.
Das würde ich gerne mit einer Sub machen: Klicke ich in Textbox 1, dann wird bFocusPersonal (Textbox1) = true und bFocusVorgang (Textbox2) = false
Ich suche sowas wie Sub txtPersonalnummer_Click() oder Sub txtPersonalnummer_setFocus
Könnt ihr mir folgen? :D
Es ist ein Userform gegeben in dem 2 Textboxen vorhanden sind und 10 Buttons mit Werten 0-9.
Nun möchte ich, dass der Anwender in die Textbox1 klickt und dann die Buttons drückt um die Zahlenwerte dort hinein zu schreiben.
Das funktioniert soweit.
Wenn aber der Anwender in die Textbox 2 klickt, dann sollen die Zahlenwerte der Buttons eben in jene Textbox geschrieben werden.
Ich muss also vorher abfragen, ob der Focus auf Textbox 1 oder 2 liegt/lag.
Das würde ich gerne mit einer Sub machen: Klicke ich in Textbox 1, dann wird bFocusPersonal (Textbox1) = true und bFocusVorgang (Textbox2) = false
Ich suche sowas wie Sub txtPersonalnummer_Click() oder Sub txtPersonalnummer_setFocus
Könnt ihr mir folgen? :D
Private Sub UserForm_Activate()
Dim objCB As Object
Dim L As Long
For Each objCB In Me.Controls
If TypeOf objCB Is CommandButton Then
ReDim Preserve UF(L)
Set UF(L) = New UserForm1
Set UF(L).Cb = objCB
L = L + 1
End If
Next
End Sub
Private Sub Cb_Click()
'If UserForm1.txtPersonalnummer.SetFocus Then
'MsgBox "Focus Personal = " & bFocusPersonal
'MsgBox "Focus Auftrag = " & bFocusVorgang
'End If
'If bFocusPersonal = True Then
If Cb.Caption = "DEL" Then
UserForm1.txtPersonalnummer.Text = Left(UserForm1.txtPersonalnummer.Text, Len(UserForm1.txtPersonalnummer.Text) - 1)
Else
UserForm1.txtPersonalnummer.Text = UserForm1.txtPersonalnummer.Text & Cb.Caption
End If
'ElseIf bFocusVorgang = True Then
If Cb.Caption = "DEL" Then
UserForm1.txtVorgang.Text = Left(UserForm1.txtVorgang.Text, Len(UserForm1.txtVorgang.Text) - 1)
Else
UserForm1.txtVorgang.Text = UserForm1.txtVorgang.Text & Cb.Caption
End If
'End If
End Sub
Private Sub txtPersonalnummer_Click()
bFocusPersonal = True
bFocusVorgang = False
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 340065
Url: https://administrator.de/forum/vba-textbox-fokussieren-und-daten-ueber-button-eintragen-340065.html
Ausgedruckt am: 12.04.2025 um 14:04 Uhr
1 Kommentar

Hi.
Definiere eine Variable für ein Control. Im Enter-Event des Textboxen setzt du dann die Variable auf die jeweilige Textbox und weist so immer welche Textbox als letztes aktiviert wurde, und kannst den Inhalt der Textbox um deine Nummern ergänzen indem du den Inhalt über die Variable setzt.
Beispiel-File:
https://we.tl/EeFixIF1Lt
Gruß
Definiere eine Variable für ein Control. Im Enter-Event des Textboxen setzt du dann die Variable auf die jeweilige Textbox und weist so immer welche Textbox als letztes aktiviert wurde, und kannst den Inhalt der Textbox um deine Nummern ergänzen indem du den Inhalt über die Variable setzt.
Dim c As Control
Private Sub TextBox1_Enter()
Set c = TextBox1
End Sub
Private Sub TextBox2_Enter()
Set c = TextBox2
End Sub
Beispiel-File:
https://we.tl/EeFixIF1Lt
Gruß