Listbox mit ComboBox Filtern

Betrifft: Listbox mit ComboBox Filtern
von: michi
Geschrieben am: 26.10.2020 13:54:26
Hallo Ihr Excel Profis
Hoffe Ihr könnt mir weiter Helfen, habe eine Userform und dort holt die Listbox entsprechende Daten.
Nun möchte ich, innerhalb der Listbox Ansicht Filtern über eine ComboBox nach Aktiv oder Inaktiv.
Bei meinem Code Filtert es aber sehr ungenau und mischt immer Aktiv und Inaktiv zusammen.
Ich hoffe Ihr könnt mir weiter helfen. Danke viel mal.
Hier anbei mein Code:
Sub Filter()
Dim rngcellName As Range
Dim Name As String
Dim Suchwort As String
With Worksheets("Mitglieder").Range("AN5:AN" & Rows.Count)
UserForm2.ListBox6.Clear
Set rngcellName = Worksheets("Mitglieder").Range("AN5:AN" & Rows.Count).Find(What: _
=UserForm2.ComboBox8, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:= _
xlNext, MatchCase:=True)
Suchwort = UserForm2.ComboBox8
If Not rngcellName Is Nothing Then
Name = rngcellName.Address
Do
With UserForm2.ListBox6
.ColumnCount = 7
.AddItem
.List(.ListCount - 1, 0) = rngcellName.Offset(-1, -39).Value 'ID
.List(.ListCount - 1, 1) = rngcellName.Offset(-1, -38).Value 'Anrede
.List(.ListCount - 1, 2) = rngcellName.Offset(-1, -37).Value 'Betreuer
.List(.ListCount - 1, 3) = rngcellName.Offset(-1, -36).Value 'Anwesend
.List(.ListCount - 1, 4) = rngcellName.Offset(-1, -35).Value 'Entschuldigt
.List(.ListCount - 1, 5) = rngcellName.Offset(-1, -34).Value ' _
Unentschuldigt
.List(.ListCount - 1, 6) = rngcellName.Offset(-1, 0).Value 'Status
End With
Set rngcellName = .FindNext(rngcellName)
Loop While Not rngcellName Is Nothing And rngcellName.Address <> Name
End If
End With
End Sub
Bedanke mir für eure hilfe.
Lg Michi

Betrifft: AW: Listbox mit ComboBox Filtern
von: Nepumuk
Geschrieben am: 26.10.2020 13:57:48
Hallo Michi,
lade bitte eine Mustermappe hoch.
Gruß
Nepumuk

Betrifft: AW: Listbox mit ComboBox Filtern
von: michi
Geschrieben am: 26.10.2020 15:00:16
Hallo Nebumuk
Danke für die Info.
Ich werde es probieren, aber da meine Datei sehr gross ist wird es nicht einfach sein.

Betrifft: AW: Listbox mit ComboBox Filtern
von: Nepumuk
Geschrieben am: 26.10.2020 15:02:57
Hallo Michi,
schmeiß alle Tabellen außer der "Mitglieder" raus und verfremde die Daten. Mehr brauche ich nicht.
Gruß
Nepumuk

Betrifft: AW: Listbox mit ComboBox Filtern
von: michi
Geschrieben am: 26.10.2020 15:38:40
Hallo Nepumuk
Habe nun alles gelöscht.
https://www.herber.de/bbs/user/141102.xlsm
Lg Michi

Betrifft: AW: Listbox mit ComboBox Filtern
von: michi
Geschrieben am: 26.10.2020 15:41:38
https://www.herber.de/bbs/user/141104.xlsm

Betrifft: AW: Listbox mit ComboBox Filtern
von: Nepumuk
Geschrieben am: 26.10.2020 15:57:08
Hallo Michi,
so besser?
Option Explicit
Private Sub ComboBox8_Change()
Call Filter
End Sub
Sub Filter()
Dim rngcellName As Range
Dim strFirstAddress As String
ListBox6.Clear
With Worksheets("Mitglieder").Columns(40)
Set rngcellName = .Find(What:=ComboBox8.Text, _
LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not rngcellName Is Nothing Then
strFirstAddress = rngcellName.Address
Do
With ListBox6
.AddItem
.List(.ListCount - 1, 0) = rngcellName.Offset(0, -39).Value
.List(.ListCount - 1, 1) = rngcellName.Offset(0, -38).Value
.List(.ListCount - 1, 2) = rngcellName.Offset(0, -37).Value
.List(.ListCount - 1, 3) = rngcellName.Offset(0, -36).Value
.List(.ListCount - 1, 4) = rngcellName.Offset(0, -35).Value
.List(.ListCount - 1, 5) = rngcellName.Offset(0, -34).Value
.List(.ListCount - 1, 6) = rngcellName.Offset(0, 0).Value
End With
Set rngcellName = .FindNext(rngcellName)
Loop Until rngcellName.Address = strFirstAddress
End If
End With
End Sub
Private Sub UserForm_Initialize()
ListBox6.ColumnCount = 7
ComboBox8.List = Array("Aktiv", "Inaktiv")
End Sub
Gruß
Nepumuk

Betrifft: AW: Listbox mit ComboBox Filtern
von: michi
Geschrieben am: 26.10.2020 16:05:37
Hallo Nepumuk
Und wie, das ist echt super.
Ich bedanke mich sehr für deine Hilfe.
Hast mir echt geholfen. DANKE!
Wünsche Dir noch einen schönen Abend
Lg Michi
Beiträge aus dem Excel-Forum zum Thema "Listbox mit ComboBox Filtern"