Ausgewählte Filter in eine Zelle schreiben lassen

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von spaxx87.

    Ausgewählte Filter in eine Zelle schreiben lassen

    Hallo,

    ich würde gerne die ausgewählten Filter mehrerer Zellen in eine andere Zelle schreiben lassen.
    So soll man schnell auf einen Blick sehen können, was alles ausgewählt ist.

    Hier mal mein Versuch:

    Sub usedfilter()

    Dim pruefer As String
    pruefer = Range("$A$6:$L$6").autofilter
    Range("C4").Value = pruefer

    End Sub

    ...da schreibt er aber nur "Wahr" in die Zelle, ich würde aber gerne die Kategorie des Filters dort stehen haben.

    Grüße

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „spaxx87“ ()

    ich glaube du hast mich nicht ganz verstanden...

    Es geht mir nicht daraum, die Daten des gesetzten Filter in einen anderen Bereich zu kopieren, sondern ich möchte in einer Zelle stehen haben, welche Kriterien in den einzelnen Filtern eines Bereches ausgewählt sind ;)
    ich will nichts filtern, die daten interessieren mich auch nicht!

    ich hätte gern in einer Zelle stehen:

    Aktuell ausgewählte Filter sind: klein, 2 stöckig, Wohnhaus, Spitzdach ...usw. (nur ein Beispiel)

    Und genau das soll mir ein Makro heraussuchen und dann in die Zelle schreiben ;)

    //Edit:

    Google hat mir noch einmal geholfen, allerdings bekomme ich in der Zelle, in der ich die Funktion einfüge nichts aufgelistet.

    Hier der Code:

    Function FilterKriterien(rng As Range) As String
    'By Stephen Bullen
    Dim Filter As String
    Filter = ""
    On Error GoTo Finish
    With rng.Parent.AutoFilter
    If Intersect(rng, .Range) Is Nothing Then GoTo Finish
    With .Filters(rng.Column - .Range.Column + 1)
    If Not .On Then GoTo Finish
    Filter = .Criteria1
    Select Case .Operator
    Case xlAnd
    Filter = Filter & " UND " & .Criteria2
    Case xlOr
    Filter = Filter & " ODER " & .Criteria2
    End Select
    End With
    End With
    Finish:
    FilterKriterien = Filter
    End Function



    Grüße

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „spaxx87“ ()

    Versuchs mal damit:

    Visual Basic-Quellcode

    1. Function FilterKriterien1(rng As Range) As String
    2. Dim Filter As String
    3. Dim f As Filter
    4. For Each f In rng.Parent.AutoFilter.Filters
    5. If f.On Then
    6. Filter = Filter & Mid(f.Criteria1, 2)
    7. Select Case f.Operator
    8. Case xlAnd
    9. Filter = Filter & " UND " & f.Criteria2
    10. Case xlOr
    11. Filter = Filter & " ODER " & f.Criteria2
    12. End Select
    13. Filter = Filter & ", "
    14. End If
    15. Next
    16. FilterKriterien1 = Left(Filter, Len(Filter) - 2)
    17. End Function


    Kleiner Tipp mal das Wort Filters markieren und F1 drücken. Hilft häufig ungemein und ist meist schneller als Google & Co
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).