Hey Leute,
anbei eine Beispieldatei. Ich habe 3 Filter in der Userform, welche sich über STRG+Q ausführen lässt. Meine Bitte ist es das ich nach Spalte O N und J filtern kann, auch in dieser Reihenfolge. Ich bekomme die Codes für die Filter nicht genau angepasst. Hier nochmal die Codes für die Filter, ansonsten zu finden in VBA.
Vielen Dank
anbei eine Beispieldatei. Ich habe 3 Filter in der Userform, welche sich über STRG+Q ausführen lässt. Meine Bitte ist es das ich nach Spalte O N und J filtern kann, auch in dieser Reihenfolge. Ich bekomme die Codes für die Filter nicht genau angepasst. Hier nochmal die Codes für die Filter, ansonsten zu finden in VBA.
Code:
Private Sub ComboBox1_Change()
'Filtert Spalte O (=Spalte 15)
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=15, Criteria1:=UserForm1.ComboBox1 '14 steht für die Spalte die gefiltert wird.
UserForm1.ComboBox2.Enabled = False 'aktiviert die 2 ComboBox
'ComboBox1.Sorted = True
Call Cbo_Spalte13 'ruft das Makro auf
End Sub
Private Sub ComboBox2_Change()
'Filtert Spalte N (=Spalte 14)
Criteria1 = UserForm1.ComboBox2 & "*"
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=14, Criteria1:=UserForm1.ComboBox2 '13 steht für die Spalte die gefiltert wird.
UserForm1.ComboBox3.Enabled = True 'aktiviert die 3 ComboBox
Call Cbo_Spalte11 'ruft das Makro auf
End Sub
Private Sub ComboBox3_Change()
'Filtert Spalte J (=Spalte 10)
Criteria1 = UserForm1.ComboBox3 & "*"
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=10, Criteria1:=UserForm1.ComboBox3 '11 steht für die Spalte die gefiltert wird.
End Sub
Private Sub Cbo_Spalte14()
Dim oDic14 As Object, meAr14
Dim A As Long
Set oDic14 = CreateObject("Scripting.Dictionary")
With Sheets("Tabelle1")
meAr14 = .Range("N7", .Cells(.Rows.Count, "N").End(xlUp)).SpecialCells(xlCellTypeVisible)
End With
For A = 1 To UBound(meAr14)
oDic14(meAr14(A, 1)) = 0
Next
ComboBox1.List = oDic14.keys
End Sub
Private Sub Cbo_Spalte13()
Dim ws As Worksheet
Dim iZeile As Long
Set ws = Sheets("Tabelle1")
For iZeile = 7 To ws.Cells(Rows.Count, "o").End(xlUp).Row
If WorksheetFunction.CountIf(ws.Range("o7:o" & iZeile), ws.Cells(iZeile, "o")) = 1 And _
ws.Rows(iZeile).Hidden = False Then _
ComboBox2.AddItem ws.Cells(iZeile, "o")
Next iZeile
End Sub
Private Sub Cbo_Spalte11()
Dim ws As Worksheet
Dim iZeile As Long
Set ws = Sheets("Tabelle1")
For iZeile = 7 To ws.Cells(Rows.Count, "L").End(xlUp).Row
If WorksheetFunction.CountIf(ws.Range("L7:L" & iZeile), ws.Cells(iZeile, "L")) = 1 And _
ws.Rows(iZeile).Hidden = False Then _
ComboBox3.AddItem ws.Cells(iZeile, "L")
Next iZeile
End Sub
Vielen Dank