ich arbeite gerade an einer UserForm bei der mehrere TextBoxen dynamisch generiert werden. Die Anzahl der TextBoxen ist variabel und unterscheidet sich je nach zuvor erfolgter Eingabe. Dies funktioniert bestens.
Jetzt möchte ich jedoch noch ein Change Ereignis den einzelnen TextBoxen hinzufügen. Da stoße ich jetzt aber mit meinem Latein an die Grenzen. Folgendes habe ich gemacht.
Klassenmodul: clsTextBox
Option Explicit
Public WithEvents cmdTextBox As MSForms.TextBox
Private m_objForm As Object
Private Sub Class_Terminate()
Set cmdTextBox = Nothing
Set m_objForm = Nothing
End Sub
Private Sub cmdTextBox_Change()
MsgBox "Eingabe: " & m_objForm.Text
End Sub
Public Property Set Form(ByRef objForm As Object)Set m_objForm = objForm
End Property
In der Userform steht folgendes:
Option Explicit
Dim clsTxt(80) As clsTextBox
Private Sub SName_Change()
Dim ctlTxt As MSForms.TextBox
Dim s As Integer
Dim BereichN As String
BereichN = "L20:CL53"
Set ctlTxt.clsTxt = Me.Controls.Add("Forms.TextBox.1", "TB" & NrE, True)
With Me.Controls("TB" & NrE)
.Top = 5 + 20 * NrE
.Left = 100
.Width = 20
.BackColor = &HC0E0FF
If WorksheetFunction.VLookup(SID, Tabelle9.Range(BereichN), 37 + s, False) > -1 _
Then
.Value = WorksheetFunction.VLookup(SID, Tabelle9.Range(BereichN), 37 + s, False) _
Else
.Value = ""
End If
End With
End Sub
Da ich mit Klassenprogrammierung bisher nur sehr wenig zu tun hatte und meist andere Lösungen fand, stehe ich damit etwas auf dem Kriegsfuß.So wie ich es gemacht habe, erhalte ich in der Zeile mit "Set" einen Fehler.
Ich hoffe, ihr könnt mir Helfen!
Vielen Dank schon mal!
Peter