Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Auto Filter: Zugriff auf die Filterkriterien

Auto Filter: Zugriff auf die Filterkriterien
26.05.2004 17:09:29
Lorenz
Hallo Excelperten,
wer kann mir bitte helfen ? Ich möchte gern mittels VBA auf die Auto-Filter-Auswahl zugreifen. Konkret: Durch Anklicken des Filters erhalte ich eine Pull-Down-Liste der möglichen Filterkriterien. Diese möchte ich nacheinander durchgehen, um die entsprechende Spalte meiner Tabelle danach jeweils zu filtern. Ich erhalte meine Filterkriterien also erst durch den Filter selbst geliefert. Wie kann ich dann z.B. nach dem dritten darin enthaltenen Kriterium filtern ? Und wie bekomme ich die Anzahl der möglichen Kriterien in dieser Liste, um z.B. mit dem letzten möglichen Kriterium zu filtern ?
schöne Grüße
Lorenz

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auto Filter: Zugriff auf die Filterkriterien
26.05.2004 17:19:52
Nepumuk
Hallo Lorenz,
auf die Auswahlkriterien gibt es keinen programmtechnischen Zugriff. Die musst du schon selbst herausholen. Am besten, die Spalte in ein Array nehmen Das Array sortieren und anschließend die doppelten Einträge wieder rauswerfen.
Gruß
Nepumuk
AW: Auto Filter: Zugriff auf die Filterkriterien
Lorenz
...warum suche ich mir eigentlich immer die Probleme aus, für die es keine (einfache) Lösung gibt ? Denn wie ich das sehe, übersteigt das leider meine Fähigkeiten.
Vielen Dank Nepumuk !!!
AW: Auto Filter: Zugriff auf die Filterkriterien
27.05.2004 16:34:06
Nepumuk
Hallo Lorenz,
so schwer ist das gar nicht, wenn du mir schreibst, um welche Spalte, ab welcher Zeile, es sich handelt, dann zeige ich dir, wie der Code dazu aussieht.
Gruß
Nepumuk
Anzeige
AW: Auto Filter: Zugriff auf die Filterkriterien
Lorenz
... das wäre ja ganz groß ! Also bei meiner Beschreibung habe ich schon sehr vereinfacht. Laß uns sagen, die Daten stehen in Spalte A mit Überschrift, also ab A2 bis A1000. Nun soll mir ein Code alle darin enthaltenen unterschiedlichen Werte liefern, um dann nacheinander jeweils danach zu filtern. Über jedes dieser Filterergebnisse folgt dann jeweils eine Prüfung.
Mit besten Grüßen
Lorenz
AW: Auto Filter: Zugriff auf die Filterkriterien
28.05.2004 18:44:49
Nepumuk
Hallo Lorenz,
es ist eigentlich ganz einfach:


Option Explicit
Public Sub Filterkriterien()
    Dim intIndex As Integer, intZaehler As Integer
    Dim varArray As Variant
    Dim strArray() As String, strMerker As String
    varArray = Range("A2:A1000")
    Call sortieren(1, 999, varArray)
    For intIndex = 1 To 999
        If strMerker <> varArray(intIndex, 1) Then
            intZaehler = intZaehler + 1
            ReDim Preserve strArray(1 To intZaehler)
            strArray(intZaehler) = varArray(intIndex, 1)
            strMerker = varArray(intIndex, 1)
        End If
    Next
    For intIndex = 1 To UBound(strArray)
    
'    Dein weiterer Code !!!!!!!!!!!!!!!!! Filter = strArray(intIndex)
    Next
End Sub
Private Sub sortieren(intUntergrenze As Integer, intObergrenze As Integer, varArray As Variant)
    Dim intindex1 As Integer, intindex2 As Integer, strElement As String, strZwischenspeicher As String
    intindex1 = intUntergrenze
    intindex2 = intObergrenze
    strZwischenspeicher = varArray(Fix((intUntergrenze + intObergrenze) / 2), 1)
    Do
        Do While varArray(intindex1, 1) < strZwischenspeicher
            intindex1 = intindex1 + 1
        Loop
        Do While strZwischenspeicher < varArray(intindex2, 1)
            intindex2 = intindex2 - 1
        Loop
        If intindex1 <= intindex2 Then
            strElement = varArray(intindex1, 1)
            varArray(intindex1, 1) = varArray(intindex2, 1)
            varArray(intindex2, 1) = strElement
            intindex1 = intindex1 + 1
            intindex2 = intindex2 - 1
        End If
    Loop Until intindex1 > intindex2
    If intUntergrenze < intindex2 Then Call sortieren(intUntergrenze, intindex2, varArray)
    If intindex1 < intObergrenze Then Call sortieren(intindex1, intObergrenze, varArray)
End Sub


Du kannst die Filtervariablen, die im Array "strArray" in sortierter Form vorliegen, wie schon angedeutet, in einer Schleife abarbeiten.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige