ich fasse mich mal in 2 Posts. Ich habe eine Datei in der ich eine Userform eingefügt habe. Anbei zu sehen.
Das Problem was sich mir stellt ist, dass ich die Filter in der Userform nicht genau hin bekomme. Das heisst, wenn ich 2 Filter über die Checkbox aktivere, werden nicht diese 2 Daten in der Tabelle gefiltert. Die Filter mit den Checkboxen funktionieren nur alleine. Ich hoffe es ist klar was ich meine. Sonst einfach selber in die Datei gehen, die Userform mal starten und mit den Filter schauen wie diese sich verhalten.
Du setzt Deine Filtereinstellungen einer Checkbox unabhängig von den anderen. Im Prinzip musst Du die Zustände der anderen verwenden:
Also nicht .SlicerItems("BEE").Selected = False
sondern .SlicerItems("BEE").Selected = CheckboxX.Value
Statt X dann die Nummer der Checkbox.
Wenn Du das so machst könntest Du übrigens auch das Aufheben einschl. If ...weglassen. Beim Filter mit = True nimmst Du die Checkbox, die das Ereignis auslöst
Also bei Checkbox2 nicht .SlicerItems("BEA").Selected = True sondern .SlicerItems("BEA").Selected = CheckBox2.Value
Im Prinzip also so, ich hab die Nummern nicht geprüft :
Code:
Private Sub CheckBox2_Click() 'FilternBEA Makro With ActiveWorkbook.SlicerCaches( _ "Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1") .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
. \\\|/// 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
(21.11.2018, 13:11)snb schrieb: Verzichte in VBA auf 'Select', 'Activate'
Keep it simple:
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 If Me("Checkbox" & j) Then c00 = c00 & "|" & Me("Checkbox" & j).Caption Next
Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7 Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7, Split(Mid(c00, 2), "|"), 7 End Sub
Stark! Es funkioniert. Kannst du mir bitte etwas näher erklären was du gemacht hast, da ich diesen Code gegebenenfalls erweitern oder anpassen muss. Bzw. einfach eine Erklärung zu dem "M_snb ()"
Hey der neue Code geht sehr gut, nun, wenn ich diese Codes in meine richtige Datei übertrage filtert er irgendwie gar nichts mehr. Die wahre Tabelle geht von A-AH und M soll gefiltert werden. DANKE!
21.11.2018, 18:18 (Dieser Beitrag wurde zuletzt bearbeitet: 21.11.2018, 18:18 von snb.)
Erstelle eine 'Intelligente' Tabelle in deiner 'richtige' Datei. Und versuche die Code zu verstehen. Das kann etwas dauern. Eine Beispieldatei sollte immer ein ähnliche Struktur haben: Spalte M <> Spalte G
Er aktualisiert auch die Spalten etc nur wenn ich eine Checkbox sozusagen deaktivere, wird der Filter nicht zurück gesetzt sonder die Auswahl bleibst bestehen.