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 aktualisieren
#1
Hey Leute,

anbei eine Beispieldatei. Ich habe 3 Filter in der Userform, welche sich über STRG+Q ausführen lässt. Meine Bitte ist es das ich nach Spalte O N und J filtern kann, auch in dieser Reihenfolge. Ich bekomme die Codes für die Filter nicht genau angepasst. Hier nochmal die Codes für die Filter, ansonsten zu finden in VBA. 


Code:
Private Sub ComboBox1_Change()
'Filtert Spalte O (=Spalte 15)
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=15, Criteria1:=UserForm1.ComboBox1 '14 steht für die Spalte die gefiltert wird.
UserForm1.ComboBox2.Enabled = False 'aktiviert die 2 ComboBox
'ComboBox1.Sorted = True
Call Cbo_Spalte13 'ruft das Makro auf
End Sub
Private Sub ComboBox2_Change()
'Filtert Spalte N (=Spalte 14)

Criteria1 = UserForm1.ComboBox2 & "*"
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=14, Criteria1:=UserForm1.ComboBox2 '13 steht für die Spalte die gefiltert wird.
UserForm1.ComboBox3.Enabled = True 'aktiviert die 3 ComboBox
Call Cbo_Spalte11 'ruft das Makro auf
End Sub
Private Sub ComboBox3_Change()
'Filtert Spalte J (=Spalte 10)

Criteria1 = UserForm1.ComboBox3 & "*"
ActiveSheet.ListObjects("Tabelle2").Range.AutoFilter Field:=10, Criteria1:=UserForm1.ComboBox3 '11 steht für die Spalte die gefiltert wird.
End Sub
Private Sub Cbo_Spalte14()

Dim oDic14 As Object, meAr14
Dim A As Long

Set oDic14 = CreateObject("Scripting.Dictionary")

With Sheets("Tabelle1")
   meAr14 = .Range("N7", .Cells(.Rows.Count, "N").End(xlUp)).SpecialCells(xlCellTypeVisible)
End With

For A = 1 To UBound(meAr14)
 oDic14(meAr14(A, 1)) = 0
Next

ComboBox1.List = oDic14.keys

End Sub
Private Sub Cbo_Spalte13()
Dim ws As Worksheet
Dim iZeile As Long

Set ws = Sheets("Tabelle1")

For iZeile = 7 To ws.Cells(Rows.Count, "o").End(xlUp).Row
   If WorksheetFunction.CountIf(ws.Range("o7:o" & iZeile), ws.Cells(iZeile, "o")) = 1 And _
       ws.Rows(iZeile).Hidden = False Then _
   ComboBox2.AddItem ws.Cells(iZeile, "o")
Next iZeile
End Sub
Private Sub Cbo_Spalte11()
Dim ws As Worksheet
Dim iZeile As Long

Set ws = Sheets("Tabelle1")

For iZeile = 7 To ws.Cells(Rows.Count, "L").End(xlUp).Row
   If WorksheetFunction.CountIf(ws.Range("L7:L" & iZeile), ws.Cells(iZeile, "L")) = 1 And _
       ws.Rows(iZeile).Hidden = False Then _
   ComboBox3.AddItem ws.Cells(iZeile, "L")
Next iZeile
End Sub

Vielen Dank


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 45,49 KB / Downloads: 2)
Antworten Top
#2
Deine Datei ist falsch, man erhält schon beim Auswählen des ersten Filters eine Fehlermeldung. Offensichtlich enthält deine Datei kein Listobject namens "Tabelle2". Außerdem sehe ich sofort, dass der Filter für Spalte 15 die Werte aus Spalte 14 enthält.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Antworten Top
#3
Hallo,

warum willst du per UserForm eine Standardfunktion nachbilden? Es ist doch völlig wumpe, in welcher Reihenfolge die Spalten gefiltert werden, am Ende bleibt immer das übrig, was über alle Filter vorhanden ist.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • elamigo
Antworten Top
#4
Danke schon mal für die Hinweise, mache mich direkt ran und werde die Datei verbessern.
Antworten Top
#5
Hey Klaus Dieter,

Danke für deine Antwort.

Es geht darum das es anwenderfreundlicher sein soll. Mit der Userform arbeiten nachehr Leute die sehr wenig Excel Kentnisse haben. Die Filterreihenfolge wäre ausserdem ebenfalls ein netten Zusatz, da die Endtabelle sehr viel Filteroptionen gibt (Abteilungen).
Antworten Top
#6
Hallo zusammen anbei die aktualisierte Datei, die Filter funktionieren so halb gut.

Ich möchte bitte das der Filter für Spalte 10 immer zu sehen ist und Spalte 14 erst aktivieren wenn 15 gefiltert wurde.


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 54,9 KB / Downloads: 5)
Antworten Top
#7
Ich verstehe ehrlich gesagt dein Problem nicht, exakt das gleiche Thema wurde doch bereits hier behandelt und gelöst. Woran scheitert es, den Code zu übernehmen?
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Antworten Top
#8
in dem Post auf den du referierst ist der Filter logisch der Reihenfolge nach. Jetzt gibt es noch den Filter der Spalte 10 zusätzlich. Also eine Combobox die immer aktivert bleiben soll und mit der ich auch direkt filtern kann. Bei mir wird die 3. Combobox erst mit Daten gefüttert wenn ich die ersten beiden Filter verwendet habe.
Antworten Top
#9
Dann brauchst du eine Prozedur, die die Combobox der Spalte 10 befüllt. Bei jeder Änderung einer der anderen Comboboxen, muss diese Prozedur erneut aufgerufen werden.
Eine zweite Prozedur ist dann der eigentliche Filtervorgang in Spalte 10
Schöne Grüße
Berni
Antworten Top
#10
kannst du mir eventuell damit weiterhelfen? Ich komme nicht weiter...
Antworten Top


Gehe zu:


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