Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1656to1660
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UF: Steuerelement + Code zur Laufzeit hinzu

UF: Steuerelement + Code zur Laufzeit hinzu
08.11.2018 09:19:50
Bernd
Servus zusammen,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Klassenprogrammierung vermeiden
08.11.2018 09:35:23
Daniel
Hi
naja, auch für Klassenprogrammierung in Userforms solltest du genügend Beispiele in den Foren und deren Archiven finden.
Wenn du (so wie ich) dich davor drücken willst die Klassenprogrammierung zu erlernen, gehe so vor:
1. verwende keine Multipage sondern Registerkarten (oder alternativ auch eine Combobox)
2. erstelle nicht viele Listboxen, sondern verwende eine zur Entwicklungszeit erstellte Listbox
3. Erstelle im Change-Event der Registerkarten einen Code, welche die Listbox mit den aktuellen Daten entsprechend der Registerkarteneinstellung befüllt und die Auswahl der abgewählten Listbox an anderer Stelle sichert (falls erforderlich).
erfordert jetzt etwas Umdenken, dürfte aber im Ganzen etwas einfacher sein als eine unbekannte Anzahl an zur Laufzeit erstellten Listboxen inklusieve Code zu händeln.
Gruß Daniel
Anzeige
Hast recht... gelöst
08.11.2018 10:37:37
Bernd
...Daniel, da hab ich wiedermal zu kompliziert gedacht.
Das Filtern der vorhandenen Listbox über eine Combobox ist deutlich einfacher...
Grüße, Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige