Registriert seit: 25.01.2018
Version(en): 2013
20.11.2018, 09:19
(Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2018, 09:20 von elamigo.)
Hey Leute,
ich habe eine Userform erstellt. In dieser Userform gibt es eine Checkbox. Diese Checkbox soll eine Datentabelle filtern, nach Bereich. Nun wenn ich auf die checkbox klicke, dann wird nach dem angegeben Bereich gefiltert. Nun möchte ich aber, wenn die check box nicht mehr aus gewählt wird, dass auch der Filter zurück gesetzt wird. Dies ist noch nicht der Fall.
Code:
Private Sub CheckBox1_Click()
'
' FilternAAA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = True
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
End Sub
Gruß
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Du kannst doch in Abhängigkeit des Wertes der Checkbox unterschiedlich reagieren.
If Checkbox1.Value = True Then
'Filtern
Else
'Filter aufheben
End if
. \\\|/// 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
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
20.11.2018, 09:35
(Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2018, 09:35 von MisterBurns.)
So?
Code:
Private Sub CheckBox1_Click()
If CheckBox1 = True then
'FilternAAA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = True
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
Else
'Filtern aufheben
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = False
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
End if
End Sub
Schöne Grüße
Berni
Registriert seit: 25.01.2018
Version(en): 2013
Danke für die Tipps, leider funktioniert es nicht.
Das zurücksetzen des Filter will nicht. Auch nicht wenn ich das Event auf "Change" stelle.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
was heißt denn "funktioniert nicht" ?
Wird der Code nicht ausgeführt, wird er ausgeführt aber der Filter nicht aufgehoben?
Nimm einen Stop in die If-Zeile und schaue, wo der Code bei Aktivierung und Deaktivierung der Checkbox lang läuft.
Zeichen mal eine Code zum Aufheben des Filters auf, setze den Filter und lasse den aufgezeichneten Code laufen. Funktioniert das?
Wie sieht der funktionierende aufgezeichnete Code im Vergleich zum geposteten aus? Gibt es da Unterschiede?
. \\\|/// 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
Registriert seit: 25.01.2018
Version(en): 2013
(20.11.2018, 10:04)schauan schrieb: Hallöchen,
was heißt denn "funktioniert nicht" ?
Wird der Code nicht ausgeführt, wird er ausgeführt aber der Filter nicht aufgehoben?
Nimm einen Stop in die If-Zeile und schaue, wo der Code bei Aktivierung und Deaktivierung der Checkbox lang läuft.
Zeichen mal eine Code zum Aufheben des Filters auf, setze den Filter und lasse den aufgezeichneten Code laufen. Funktioniert das?
Wie sieht der funktionierende aufgezeichnete Code im Vergleich zum geposteten aus? Gibt es da Unterschiede?
Soll heissen ich bekomme keinen Error oder einen Fehler, sondern es passiert einfach gar nichts, wenn ich das Häckenchen entferne.
Der aufgezeichnete Code zum Filter zurücksetzen ist wie folgt
Code:
ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1"). _
ClearManualFilter
funktioniert allerdings auch nicht.
Mein Code sieht derzeit so aus.
Code:
Private Sub CheckBox1_Change()
If CheckBox1 = True Then
'FilternAAA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = True
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
Else
'Filter aufheben
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = False
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
End If
End Sub
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Du behauptest, der aufgezeichnete Code setzt beim erneuten Ausführen nicht den Filter zurück? Da möchte ich es doch mit dem guten alten Göhte halten... Die Botschaft hör ich wohl, allein mir fehlt der Glaube!
Schöne Grüße
Berni
Registriert seit: 25.01.2018
Version(en): 2013
Damit wir uns nicht falsch verstehen. Wenn ich das aufgezeichnete Marko einzeln auf einen Button lege funktioniert es, allerdings nicht in Kombi mit der Checkbox.
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
Also dieser Code funktioniert nicht?
Code:
Private Sub CheckBox1_Change()
If CheckBox1 = True Then
'FilternAAA Makro
With ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1")
.SlicerItems("AAA").Selected = True
.SlicerItems("BBB").Selected = False
.SlicerItems("CCC").Selected = False
.SlicerItems("DDD").Selected = False
.SlicerItems("EEE").Selected = False
End With
Else
'Filter aufheben
ActiveWorkbook.SlicerCaches( _
"Datenschnitt__Org_Unit_Reporting_Level_1_____Org_Einheit_Berichts_ebene_1"). _
ClearManualFilter
End If
End Sub
Wenn dem tatsächlich so sein sollte, lade bitte eine Beispielmappe hoch.
Schöne Grüße
Berni
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
20.11.2018, 10:49
(Dieser Beitrag wurde zuletzt bearbeitet: 20.11.2018, 10:49 von schauan.)
Hallöchen,
Du hast einen Stop in die If-Zeile gelegt und da kommt nix in der Zeile an? Es ist auch die richtige Checkbox1? Normalerweise sollte das Makro dann in dieser Zeile anhalten. Wenn nix passiert, sind die Events anscheinend abgeschalten.
Angeschalten bekommst Du die Events z.B. mit
Sub EventsAn()
Application.EnableEvents=True
End Sub
Du solltest dann aber auch mal schauen, wo die Events ausgeschalten werden und warum ...
. \\\|/// 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