mit folgendem Code lasse ich bei meiner Userform Multipage zur Laufzeit weitere Pages hinzufügen und darauf jeweils eine Listbox erstellen:
For y = LBound(arrobjdict) To UBound(arrobjdict)
strTemp = CStr(arrobjdict(y))
With Me.MultiPage1.Pages
.Add
.Item(y + 1).Caption = strTemp
' Listbox hinzu
Set frmList = Me.MultiPage1.Pages.Item(y + 1).Controls.Add("Forms.Listbox.1", "Liste" & _
y + 2)
With frmList
.Left = 5
.Top = 15
.Height = 340
.Width = 680
.ColumnCount = 8
For i = 7 To ws.Cells(Rows.Count, 1).End(xlUp).Row
If ws.Cells(i, 6).Value = strTemp Then
.AddItem
.List(.ListCount - 1, 0) = ws.Cells(i, 1).Value
.List(.ListCount - 1, 1) = ws.Cells(i, 2).Value
.List(.ListCount - 1, 2) = ws.Cells(i, 3).Value
.List(.ListCount - 1, 3) = ws.Cells(i, 5).Value
.List(.ListCount - 1, 4) = ws.Cells(i, 6).Value
.List(.ListCount - 1, 5) = ws.Cells(i, 7).Value
.List(.ListCount - 1, 6) = ws.Cells(i, 8).Value
.List(.ListCount - 1, 7) = ws.Cells(i, 9).Value
End If
Next i
.ColumnWidths = "4cm;10cm;1,5cm;1cm;1cm;1cm;1cm;1cm"
End With
' Listbox hinzu ENDE
End With
Next y
Das funktioniert soweit schon ganz gut.
Hintergrund:
Ich kann einfach nicht im Editor festlegen, wie viele unterschiedliche Pages mit entsprechenden Listboxen ich haben werde. Die Grundtabelle mit den Daten ändert sich ständig.
Ich weiß jedoch, dass ich jeder Listbox den gleichen Code hinterlegen möchte!
Private Sub ListBox1_Click()
Suchbegriff = Me.ListBox1.Value
End Sub
Wie kann ich diesen Code direkt bei der Erstellung mit hinterlegen?
Ich habe schon viele Beiträge im Internet dazu gelesen (hauptsächlich von ransi und Tino), aber die beziehen sich fast immer auf Tabellen in Verbindung mit Klassenprogrammierung und nicht auf Userforms. Mit Klassenprogrammierung kenne ich mich jedoch nicht aus.
Kann mir bitte jemand einen Tipp geben?
Danke und Grüße, Bernd