Userform CheckBox
#1
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ß
Top
#2
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:
  • elamigo
Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top
#4
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.
Top
#5
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:
  • elamigo
Top
#6
(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
Top
#7
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
Top
#8
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.
Top
#9
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
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top
#10
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:
  • elamigo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste