AW: gewähltes control als variable übergeben
26.05.2022 09:44:26
volti
Hallo RoMo,
unabhängig vom Sinn Deines Vorhabens und in der Annahme, dass ich Dich richtig verstanden habe, hier mal eine Anregung zur Umsetzung Deines Vorhabens.
Wenn Du wirklich von 50 Textboxen bei Änderung des Inhalts diesen in einer immer gleichen Textbox anzeigen lassen möchtest, bietet sich eine Klassenprogrammierung an.
Hier ein Beispiel, den kompletten Code kannst Du auch der Mappe entnehmen.
Damit es keine Rückkoppelung gibt, erfolgt die Rückgabe der Änderung in der "Mastertextbox" erst nach dessen Verlassen...
Textoxen.xlsm
Code:
' In den Userformcode
Option Compare Text
Dim cTextbox() As New clsTextbox
Private Sub UserForm_Initialize()
' Alle Textboxen in Array einlesen
Dim oTB As Control, i As Integer
For Each oTB In Me.Controls
If TypeName(oTB) Like "TextBox" Then
i = i + 1
ReDim Preserve cTextbox(1 To i)
Set cTextbox(i).tb = oTB
End If
Next oTB
End Sub
Private Sub TextBox51_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Controls(TextBox51.Tag).Text = TextBox51.Text
End Sub
' In das Klassenmodul clsTextbox
Public WithEvents tb As MSForms.TextBox
Private Sub TB_Change()
If tb.Name <> "TextBox51" Then UserForm1.TextBox51.Text = tb.Text
End Sub
Private Sub TB_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If tb.Name <> "TextBox51" Then UserForm1.TextBox51.Tag = tb.Name
End Sub
_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz