Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Autofilter per Makro setzen

Autofilter per Makro setzen
14.06.2006 08:32:15
JayLen
Guten Morgen...
Ich habe nicht viel Ahnung bei VBA. Ich habe per Makrorecorder den Code zum setzen eines Autofilters aufgenommen. Der Sieht folgendermaßen aus:
Selection.AutoFilter Field:=8, Criteria1:="12.04.2005"
Wenn ich dann aber den Autofilter zurücksetze und das Makro ausführe, wird das Ergebnis nicht mehr angezeigt. Nur noch leere Zeilen.
Woran liegt das ?
Danke JayLen
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter per Makro setzen
14.06.2006 09:15:53
Koenig
Hallo JayLen,
sicher spielt Dir die Selection einen Streich und wahrscheinlich auch das Auflösen des Autofilters.
Ich würde es so versuchen

Sub Filter()
Cells.AutoFilter field:=8, Criteria1:="12.04.2005"
End Sub


Sub FilterWeg()
Cells.AutoFilter field:=8, VisibleDropdown:=False
End Sub

Gruss Wilhelm
Anzeige
AW: Autofilter per Makro setzen
14.06.2006 09:18:34
Koenig
Nachtrag,
das Weglassen des Kriteriums setzt den Filter auf Alle anzeigen, findest Du übrigens in der Onlinehilfe zum Begriff Autofilter.
Gruss
AW: Autofilter per Makro setzen
14.06.2006 12:09:04
JayLen
Hallo Wilhelm
Mein Code sieht jetzt so aus:

Sub Autofilter()
Dim AktiveZeile2 As Integer
Dim Ende As Integer
Dim Datum As String
AktiveZeile2 = ActiveCell.Row
Ende = Application.Worksheets("Umsätze").Range("A65536").End(xlUp).Row
With Worksheets("Umsätze")
If .AutoFilterMode Then
Rows("4:4").Select
Selection.Autofilter
Range("A4", Cells(Ende, 33)).Select
Selection.Autofilter
Else
Range("A4", Cells(Ende, 33)).Select
Selection.Autofilter
End If
End With
Cells(AktiveZeile2, 3).Select
Datum = Cells(AktiveZeile2, 3)
Selection.Autofilter Field:=3, Criteria1:=Datum, Operator:=xlAnd
Range("A7").Select
End Sub

Findest du da noch irgendwo einen Fehler. Ich fall bald vom glauben ab.
Danke JayLen
Anzeige
AW: Autofilter per Makro setzen
14.06.2006 12:27:00
Koenig
Hallo JayLen,
etwas fällt mir spontan auf; bei der Prüfung AutofilterMode müsstest Du sagen, was Du prüfst ob True oder False und dann bei wahrem Ergebnis die Then Anweisung.
Kannst Du mir sagen, was Du eigentlich genau machen willst, besser wäre wenn Du eine Beispieldatei hochladen könntest und beschreiben, was geschehen sollte.
Gruss bis dann
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Autofilter per Makro setzen in Excel


Schritt-für-Schritt-Anleitung

Um den Excel VBA Autofilter per Makro zu setzen, kannst du folgende Schritte befolgen:

  1. Öffne deine Excel-Datei und aktiviere den VBA-Editor mit ALT + F11.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code ein:

    Sub Autofilter()
        Dim AktiveZeile2 As Integer
        Dim Ende As Integer
        Dim Datum As String
    
        AktiveZeile2 = ActiveCell.Row
        Ende = Application.Worksheets("Umsätze").Range("A65536").End(xlUp).Row
    
        With Worksheets("Umsätze")
            If .AutoFilterMode Then
                Rows("4:4").Select
                Selection.AutoFilter
                Range("A4", Cells(Ende, 33)).Select
                Selection.AutoFilter
            Else
                Range("A4", Cells(Ende, 33)).Select
                Selection.AutoFilter
            End If
        End With
    
        Cells(AktiveZeile2, 3).Select
        Datum = Cells(AktiveZeile2, 3)
        Selection.AutoFilter Field:=3, Criteria1:=Datum, Operator:=xlAnd
        Range("A7").Select
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: Leere Zeilen nach dem Zurücksetzen des Filters
    Mögliche Ursache ist die Verwendung von Selection. Stattdessen solltest du die Cells oder Range-Objekte verwenden, um sicherzustellen, dass der Filter auf die richtige Tabelle angewendet wird.

  • Lösung: Verwende den folgenden Code, um den Filter zu setzen:

    Sub Filter()
        Cells.AutoFilter field:=8, Criteria1:="12.04.2005"
    End Sub
  • Fehler: Autofilter wird nicht korrekt aktiviert
    Stelle sicher, dass du den AutoFilterMode korrekt überprüfst. Hier ein Beispiel:

    If Not .AutoFilterMode Then
        .Range("A4").AutoFilter
    End If

Alternative Methoden

Eine alternative Methode, um den Excel VBA Autofilter zu setzen, ist die Verwendung der AutoFilter-Methode direkt auf einem Bereich. Hier ist ein einfaches Beispiel:

Sub AlternativeFilter()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Umsätze")
    ws.Range("A4:Z100").AutoFilter Field:=3, Criteria1:="12.04.2005"
End Sub

Diese Methode ist nützlich, wenn du eine bestimmte Range angeben möchtest, anstatt die gesamte Tabelle zu filtern.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Setzen von Filtern in Excel mit VBA:

  1. Filtern nach Datum:

    Sub FilterByDate()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("Umsätze")
        ws.Range("A4:Z100").AutoFilter Field:=3, Criteria1:=">=01.01.2022", Operator:=xlAnd
    End Sub
  2. Filtern nach mehreren Kriterien:

    Sub MultiCriteriaFilter()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Worksheets("Umsätze")
        ws.Range("A4:Z100").AutoFilter Field:=8, Criteria1:=Array("12.04.2005", "15.05.2005"), Operator:=xlFilterValues
    End Sub

Tipps für Profis

  • Verwende AutoFilterMode: Überprüfe den AutoFilterMode, um zu bestimmen, ob ein Filter bereits aktiv ist, bevor du einen neuen Filter setzt. Dies kann helfen, Fehler zu vermeiden.

  • Vermeide Selection: Arbeite stattdessen mit Cells oder Range, um präzise und fehlerfreie Filter zu setzen.

  • Dokumentiere deinen Code: Füge Kommentare hinzu, um die Funktionsweise deines Codes zu erklären. Dies hilft dir und anderen, den Code später besser zu verstehen.


FAQ: Häufige Fragen

1. Wie setze ich den Autofilter für mehrere Spalten?
Du kannst mehrere Filter gleichzeitig setzen, indem du die AutoFilter-Methode für jede Spalte aufrufst.

2. Was mache ich, wenn der Filter nicht funktioniert?
Überprüfe, ob die Daten korrekt formatiert sind und ob der Autofilter auf den richtigen Bereich angewendet wird.

3. Wie kann ich den Autofilter zurücksetzen?
Verwende Cells.AutoFilter, um alle Filter zurückzusetzen:

Sub ResetFilter()
    Cells.AutoFilter
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige