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, 14:25 (Dieser Beitrag wurde zuletzt bearbeitet: 22.11.2018, 14: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