Habe ich schon leider funktioniert es nicht. Der code ist genau der gleiche wie Sie mir geschickt haben. Der Code den ich nutze sieht wie folgt aus:
Code:
Private Sub CheckBox1_Change()
M_snb
End Sub
Private Sub CheckBox2_Change()
M_snb
End Sub
Private Sub CheckBox3_Change()
M_snb
End Sub
Private Sub CheckBox4_Change()
M_snb
End Sub
Private Sub CheckBox5_Change()
M_snb
End Sub
Sub M_snb()
For j = 1 To 5 'Anzahl der Checkboxen und Filteroptionen, eine Zeile tiefer
If Me("Checkbox" & j) Then c00 = c00 & "|" & Me("Checkbox" & j).Caption
Next
Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7
If c00 <> "" Then Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 13, Split(Mid(c00, 2), "|"), 7
End Sub
Private Sub CommandButton3_Click()
Tabelle1.ShowAllData
End Sub
Allerdings bleibt das Problem, das der Filter beim abwählen des Kästchen nicht zurückgesetzt wird. :(
22.11.2018, 13:25 (Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2018, 13:25 von elamigo.)
@snb, danke schon mal, aber welche Zeile muss ich noch anpassen, damit der Filter sich beim abwählen zurücksetzt?
@Kuwer ich habe diese Variante versucht der Code sieht so aus
Code:
Private Sub CheckBox1_Click()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
Private Sub CheckBox2_Click()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
Private Sub CheckBox3_Click()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
Private Sub CheckBox4_Click()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
Private Sub CheckBox5_Click()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
allerdings will der nicht zu 100%, selbe Problem beim abwählen der checkbox. Anbei die Datei mit dem Code. Sollte auf keinen Fall negativ rüber kommen oder abwertend gegenüber Andre aus #2
oder so. Beim Aufruf des Programms rufe ich noch den Filterstatus ab und setze die Checkboxen entsprechend. Damit dadurch nicht der Click-Code beim Setzen erneut filtert, habe ich per Tag mitgeteilt, dass gerade was anderes läuft
Den Filtercode hab ich zwecks Optimierung ausgelagert.
Code:
Private Sub UserForm_Activate()
SetCheck
End Sub
Private Sub CheckBox1_Click()
If Me.Tag = "" Then Filtern
End Sub
Private Sub CheckBox2_Click()
If Me.Tag = "" Then Filtern
End Sub
Private Sub CheckBox3_Click()
If Me.Tag = "" Then Filtern
End Sub
Private Sub CheckBox4_Click()
If Me.Tag = "" Then Filtern
End Sub
Private Sub CheckBox5_Click()
If Me.Tag = "" Then Filtern
End Sub
Sub Filtern()
'FilternBEA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
.SlicerItems("BEE").Selected = CheckBox1.Value
.SlicerItems("BEA").Selected = CheckBox2.Value
.SlicerItems("BGS").Selected = CheckBox3.Value
.SlicerItems("BPP").Selected = CheckBox4.Value
.SlicerItems("BTT").Selected = CheckBox5.Value
End With
End Sub
Sub SetCheck()
'FilternBEA Makro
Me.Tag = "!"
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt_Spalte12")
CheckBox1.Value = .SlicerItems("BEE").Selected
CheckBox2.Value = .SlicerItems("BEA").Selected
CheckBox3.Value = .SlicerItems("BGS").Selected
CheckBox4.Value = .SlicerItems("BPP").Selected
CheckBox5.Value = .SlicerItems("BTT").Selected
End With
Me.Tag = ""
End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • elamigo