Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filter in Userform
#1
Hey Leute,

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. 

Btw: es geht um das Filter nach Bereich.


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 70,43 KB / Downloads: 11)
Antwortento top
#2
Hallöchen,

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 Smile :

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-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • elamigo
Antwortento top
#3
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

Private Sub CommandButton3_Click()
   Tabelle1.ShowAllData
End Sub

Private Sub CommandButton1_Click()
  Tabelle1.ListObjects(1).DataBodyRange.Copy Sheets.Add(, Sheets(Sheets.Count)).Cells(1)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Benutzer sagt Danke an snb für diesen Beitrag:
  • elamigo
Antwortento top
#4
(21.11.2018, 12: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 ()"
Antwortento top
#5
Kommando zurück, wenn ich den Filter wieder raus nehme nachdem er angeklickt war, kommt ein Fehler und der Debugger zeigt folgende Zeile an:
Code:
Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7, Split(Mid(c00, 2), "|"), 7
Antwortento top
#6
Code:
If c00<>"" Then Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7, Split(Mid(c00, 2), "|"), 7


Email in Excel: http://www.snb-vba.eu/VBA_Excelgegevens_...ml#L_2.3.2
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Benutzer sagt Danke an snb für diesen Beitrag:
  • elamigo
Antwortento top
#7
(21.11.2018, 14:25)snb schrieb:
Code:
If c00<>"" Then Tabelle1.ListObjects(1).DataBodyRange.AutoFilter 7, Split(Mid(c00, 2), "|"), 7


Email in Excel:  http://www.snb-vba.eu/VBA_Excelgegevens_...ml#L_2.3.2

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!
Antwortento top
#8
Hallöchen,

Du musst die Antwort nicht zitieren. Wenn Du einen bestimmten Antworter ansprechen willst, schreib einfach seinen Namen Smile
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • elamigo
Antwortento top
#9
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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Benutzer sagt Danke an snb für diesen Beitrag:
  • elamigo
Antwortento top
#10
Die Struktur ist mir zu 75% klar  Undecided 

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.
Antwortento top


Gehe zu:


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