AW:
06.02.2019 11:38:06
Listbox bedingt ausgeben - Ergänzende Frage
Moin!
Also m.E. werden alle aus Gruppe 1 am Anfang in die CB3 eingtragen. Das Cb Enter Event mal so abändern.
Private Sub ComboBox3_Enter()
Dim quelle As Object
Dim namen
Dim daten
Dim zeile As Long, ende As Long
Dim zusanam As String 'könnte auch weg und im Code gleich durch den eintrag ersetzt werden, so _
kann man aber immer testen, was er anzeigt
Set quelle = Worksheets("Liste")
Set namen = CreateObject("Scripting.Dictionary")
ende = quelle.Cells(quelle.Rows.Count, 1).End(xlUp).Row
daten = quelle.Range("A1:F" & ende)
'die Namen aus der Combosammeln
For zeile = 0 To Me.ComboBox3.ListCount - 1
'hier beachten, die Zählung beginnt bei 0 in der LIste, beim Befüllen hatte ich das Array von 1 _
to 5 angelegt, so dass man es besser lesen kann
zusanam = Me.ComboBox3.List(zeile, 2) & "#" & Me.ComboBox3.List(zeile, 3)
namen.Add zusanam, 0
Next
'jezt die Liste durchgehen
For zeile = 4 To ende
zusanam = daten(zeile, 5) & "#" & daten(zeile, 6)
If namen.exists(zusanam) Then namen(zusanam) = namen(zusanam) + 1
Next
'jetzt eintragen, dabei stehen ja die Namen schon in der Reihenfolge
For zeile = 0 To Me.ComboBox3.ListCount - 1
Me.ComboBox3.List(zeile, 1) = namen.items()(zeile)
Next
End Sub
VG