Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1852to1856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Autofilterfunktion

Autofilterfunktion
15.10.2021 18:09:58
thino03
Hallo Excelprofis
ich habe ein Problem mit dem Autofilter.
Mein Ziel ist es den Filter so zu verwenden, das
- nur nach Namen
- nur nach Anfangsdatum
- nur nach Zeitraum
- oder nur nach Kostenstelle
filtern kann.
Schön wäre es wenn ich die Filter miteinander kombinieren könnte.
z.B.
Zeitraum und Name, oder Name und Zeitraum und Kostenstelle
Den Ansatz dafür habe ich im Netz gefunden, kann ihn aber leider nicht modifizieren.
https://www.herber.de/bbs/user/148637.zip
Noch eine Frage zur Datei. Warum zeigen die Comboboxen nicht alle Einträge an?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilterfunktion
15.10.2021 18:26:41
{Boris}
Hi,
was hindert Dich konkret daran, den Autofilter zu nutzen?
Zusatzfrage: Bei mir werden alle Einträge angezeigt.
VG Boris
OK - zur Zusatzfrage...
15.10.2021 18:29:39
{Boris}
...habe ich verstanden, dass die Einträge in Deinen Comboboxen des Userforms nicht korrekt angezeigt werden.
Bleibt aber erstmal die Frage, weshalb Du den Autofilter nicht nutzten möchtest?
VG, Boris
AW: OK - zur Zusatzfrage...
15.10.2021 18:41:19
thino03
Hi Boris
den Autofilter möchte ich schon nutzen, aber so wie es aussieht klappt es nicht ganz richtig. Wenn ich nur

Private Sub CommandButton2_Click()
Selection.AutoFilter Field:=2, Criteria1:=">=" & CDbl(ComboBox2.Value)
End Sub
eintrage zeigt es mir keine Werte an
Anzeige
Eulen nach Athen..
15.10.2021 18:47:08
{Boris}
Hi,
nochmal: Was hindert Dich konkret daran, das eingebaute Feature "Autofilter" zu nuten? Das ist dermaßen genial programmiert, dass man es niemals mit einer Userform nachbauen kann und muss....?
VG, Boris
AW: Eulen nach Athen..
15.10.2021 19:08:30
thino03
Hi Boris
den Autofilter kann ich aber nicht über die Userform steuern, da muss ich immer wieder auf das Tabellenblatt, das wollte ich vermeiden.
Oder sehe ich das falsch?
Es soll für alle Nutzer über die Userform gefiltert werden, da die gefilterten Daten noch weiter verarbeitet werden sollen.
Gruss Thino
Das musst Du entscheiden...
15.10.2021 20:49:33
{Boris}
Hi,
der Autofilter ist halt von Haus aus ein so mächtiges und vor allem performantes Instrument, dass es mir schwer fällt nachzuvollziehen, weshalb man ihn mit Userforms nachbauen muss, denn das wir nie gelingen.
VG, Boris
Anzeige
AW: OK - zur Zusatzfrage...
15.10.2021 19:06:17
Daniel
Hi
Der Autofilter braucht die Zahl mit Punkt als Dezimalzeichen.
Probiers mal mit

">=" & Replace(Combobox1.value, ",", ".")
Gruß Daniel
AW: OK - zur Zusatzfrage...
15.10.2021 19:18:56
thino03
Hi Daniel
es blendet alle Zellen mit Daten aus, genau auch beim Datum. Bei der Kostenstelle zeigt es Ergebnisse an.
Das verwundert mich
Gruss Thino
AW: OK - zur Zusatzfrage...
15.10.2021 21:56:48
Daniel
Muss man schauen, was in den Zellen steht und was das Filterkriterium in der Box ist.
VBA muss manchmal anders "gefüttert" als der Recorder das aufzeichnet.
Gruß Daniel
AW: Autofilterfunktion
15.10.2021 18:35:56
thino03
Danke Boris,
in der Tabelle ja, aber in der Combobox z.B. Datum kann ich nicht auf die unteren Werte scrollen
Anzeige
AW: Autofilterfunktion
16.10.2021 04:54:33
Werner
Hallo,
1. würde ich die Comboboxen über das Initialize der Userform und da dann über ein Scripting Dictionary füllen. Ein Scripting Dictionary kann nur eindeutige Werte aufnehmen. Das hat den Vorteil, dass du in deinen Comboboxen keine doppelten Werte hast.
Du musst jetzt aber bei allen Comboboxen die RowSource Eintragungen in den Eigenschaften wieder löschen.
Die Zuweisung der Einträge im Dictionary erfolgen über die List Eingenschaft der Combobox.
  • Private Sub UserForm_Initialize()
    Dim myDic As Object, raZelle As Range
    Set myDic = CreateObject("Scripting.Dictionary")
    With Worksheets("Tabelle1")
    loLetzte = .Cells(.Rows.Count, "B").End(xlUp).Row
    For Each raZelle In .Range(.Cells(2, "B"), .Cells(loLetzte, "B"))
    myDic(raZelle.Value) = 0
    Next raZelle
    Me.ComboBox1.List = myDic.keys
    loLetzte = .Cells(.Rows.Count, "C").End(xlUp).Row
    Set myDic = CreateObject("Scripting.Dictionary")
    For Each raZelle In .Range(.Cells(2, "C"), .Cells(loLetzte, "C"))
    myDic(raZelle.Value) = 0
    Next raZelle
    Me.ComboBox2.List = myDic.keys
    Me.ComboBox3.List = myDic.keys
    loLetzte = .Cells(.Rows.Count, "D").End(xlUp).Row
    Set myDic = CreateObject("Scripting.Dictionary")
    For Each raZelle In .Range(.Cells(2, "D"), .Cells(loLetzte, "D"))
    myDic(raZelle.Value) = 0
    Next raZelle
    Me.ComboBox4.List = myDic.keys
    End With
    Set myDic = Nothing
    End Sub

  • Ansonsten:
    
    Private Sub CommandButton1_Click()
    If Me.ComboBox1.ListIndex > -1 Then
    Worksheets("Tabelle1").Range("A1").AutoFilter Field:=2, Criteria1:="=" & ComboBox1
    End Sub
    Private Sub CommandButton2_Click()
    If Me.ComboBox2.ListIndex > -1 And Me.ComboBox3.ListIndex > -1 Then
    Worksheets("Tabelle1").Range("A1").AutoFilter Field:=3, Criteria1:=">=" & ComboBox2, _
    Operator:=xlAnd, Criteria2:=" -1 Then
    Worksheets("Tabelle1").Range("A1").AutoFilter Field:=4, Criteria1:=CLng(ComboBox4)
    End If
    End Sub
    
    Gruß Werner
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige