Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Autofilter Makro mehrere Werte ausblenden

Autofilter Makro mehrere Werte ausblenden
26.10.2015 10:08:42
Christof
Hallo zusammen
ich möchte mit einem Makro im Autofilter mehrere Werte ausblenden. Leider krieg ich es nicht auf die Reihe. mit dem Code:
ActiveSheet.Range("A17").AutoFilter Field:=4, Criteria1:=Array(LIEF_SAP1, LIEF_SAP2, LIEF_SAP3), Operator:=xlFilterValues
sehe ich alle entsprechenden Werte (LIEF_SAP1 etc. sind als Public Const definiert). Ich möchte diese aber ausblenden.
mit dem Code:
ActiveSheet.Range("A17").AutoFilter Field:=4, Criteria1:="" & LIEF_SAP1
kann ich auch nicht alle Werte ausblenden
Vielen Dank für eure Hilfe
Chrisotf

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter Makro mehrere Werte ausblenden
26.10.2015 10:44:21
Daniel
Hi
das geht nicht.
beim Filtern über das Array musst du im Array alle Werte auflisten, die angezeigt werden sollen
die Möglichkeit Jokerzeichen zu verwenden oder das Ergebnis zu negieren ("enthält nicht") hast du nicht.
du musst also ein Array erstellen, welches alle anzuzeigenden Werte enthält.
das könnte so aussehen:
Sub test()
Dim strFilter As String
Dim x
With Range("A17").CurrentRegion
For Each x In .Columns(4).Cells
Select Case x
Case LIEF_SAP1, LIEF_SAP2, LIEF_SAP3
Case Else
strFilter = strFilter & "|" & x
End Select
Next
strFilter = Mid$(strFilter, 2)
.AutoFilter , field:=4, Criteria1:=Split(strFilter, "|"), Operator:=xlFilterValues
End With
End Sub
Gruß Daniel

Anzeige
AW: Autofilter Makro mehrere Werte ausblenden
26.10.2015 10:53:16
Christof
Super, Vielen Dank
Gruss Christof
Anzeige
Anzeige

Infobox / Tutorial

Autofilter im Excel VBA: Mehrere Werte ausblenden


Schritt-für-Schritt-Anleitung

Um im Excel VBA Autofilter mehrere Werte auszublenden, kannst du den folgenden Code verwenden. Stelle sicher, dass du die Werte, die du ausblenden möchtest, in einer Public Const definiert hast:

Sub AusblendenMehrererWerte()
    Dim strFilter As String
    Dim x As Range
    With Range("A17").CurrentRegion
        For Each x In .Columns(4).Cells
            Select Case x
                Case LIEF_SAP1, LIEF_SAP2, LIEF_SAP3 ' Werte, die angezeigt werden sollen
                Case Else
                    strFilter = strFilter & "|" & x ' Alle anderen Werte zum Filter hinzufügen
            End Select
        Next x
        strFilter = Mid$(strFilter, 2) ' Entferne das führende "|"
        .AutoFilter Field:=4, Criteria1:=Split(strFilter, "|"), Operator:=xlFilterValues ' Filter anwenden
    End With
End Sub

Dieser Code erstellt ein Array mit den Werten, die angezeigt werden sollen, und filtert alle anderen aus. Achte darauf, dass der Autofilter in der Excel-Version aktiviert ist, in der du arbeitest.


Häufige Fehler und Lösungen

  1. Fehler: Alle Werte werden angezeigt

    • Lösung: Stelle sicher, dass du das Array korrekt anlegst. Du musst alle Werte, die angezeigt werden sollen, im Array auflisten. Das Beispiel oben zeigt, wie dies funktioniert.
  2. Fehler: Filter funktioniert nicht richtig

    • Lösung: Überprüfe die Definition der Public Const und stelle sicher, dass die Werte korrekt in der Datenquelle vorhanden sind.
  3. Fehler: Excel zeigt einen Fehler an (z.B. #WERT!)

    • Lösung: Verwende die Funktion excel istfehler negieren, um Fehler bei der Filterung zu vermeiden.

Alternative Methoden

Eine alternative Methode, um die Werte im Autofilter zu negieren, besteht darin, einfach alle Werte, die angezeigt werden sollen, in einer Liste zu halten und die Filteroperation darauf anzuwenden. Du könntest auch den Criteria1-Parameter mit einer Kombination von Kriterien verwenden, um nur die gewünschten Werte zu filtern.


Praktische Beispiele

Hier ein einfaches Beispiel zur Verwendung des Autofilters mit mehreren Werten:

Sub BeispielFilter()
    ActiveSheet.Range("A17").AutoFilter Field:=4, Criteria1:=Array("Wert1", "Wert2", "Wert3"), Operator:=xlFilterValues
End Sub

Wenn du das Filterkriterium umkehren möchtest, kannst du die oben beschriebenen Methoden zur Erstellung eines negierten Filters verwenden.


Tipps für Profis

  • Verwende xlFilterValues, um sicherzustellen, dass die Filteroperation korrekt ausgeführt wird.
  • Denke daran, die Filterkriterien variabel zu halten, falls du sie in verschiedenen Situationen benötigst. Das macht deinen Code flexibler.
  • Wenn du regelmäßig mit Filtern arbeitest, könnte es hilfreich sein, häufig genutzte Filterkriterien in Funktionen zu packen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Werte im Autofilter gleichzeitig anzeigen?
Du kannst mehrere Werte im Autofilter anzeigen, indem du sie als Array im Criteria1-Parameter angibst, wie im obigen Beispiel gezeigt.

2. Was mache ich, wenn der Autofilter nicht funktioniert?
Überprüfe, ob die Datenquelle korrekt ausgewählt ist und ob die Filtereinstellungen richtig definiert wurden. Achte auch darauf, dass keine leeren Zellen in der Filterspalte vorhanden sind.

3. Wie negiere ich Werte im Autofilter?
Um Werte zu negieren, erstelle ein Array mit den Werten, die angezeigt werden sollen, und filtere die anderen aus. Verwende die oben gezeigte Methode, um dies zu erreichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige