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

Autofiltereinstellungen speichern

Forumthread: Autofiltereinstellungen speichern

Autofiltereinstellungen speichern
23.06.2005 11:06:08
BecoQS
Hallo,
ich habe eine Tabelle mit externen Daten die mit Autofiltern gefiltert ist. Beim Aktualisieren der externen Daten gehen die Autofiltereinstellungen verloren.
Ist es mit VBA möglich erst die Filtereinstellungen in Variablen zu sichern um sie dann nach dem aktualisieren mit selection.Autofilter wieder zu setzen?
Danke für jeden Tip
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofiltereinstellungen speichern
26.06.2005 00:11:23
Klaus
Hallo BecoQS,
versuch mal, ob das hier bei dir klappt:
Der Code Set ZeileAutoFilter = .Rows(1) muß angepaßt werden.
Es ist die Zeile, in der die AutoFilter aktiviert sind bzw. werden sollen.
Alle Vorgänge beziehen sich auf die aktuelle Tabelle (With ActiveSheet).
Sub FiltereinstellungenMerken()
Dim Wert_Filter1() As String, Wert_Filter2() As String
Dim Wert_UndOder(), Filteranzahl As Integer
Dim i As Integer, f As Object, ZeileAutoFilter As Range
With ActiveSheet
'Filtereinstellungen merken

Set ZeileAutoFilter = .Rows(1) 'bitte anpassen

Filteranzahl = .AutoFilter.Filters.Count
ReDim Preserve Wert_Filter1(Filteranzahl)
ReDim Preserve Wert_Filter2(Filteranzahl)
ReDim Preserve Wert_UndOder(Filteranzahl)
If .AutoFilterMode Then
i = 1
For Each f In .AutoFilter.Filters
With f
If .On Then
Wert_Filter1(i) = .Criteria1
Wert_UndOder(i) = .Operator
On Error Resume Next
Wert_Filter2(i) = .Criteria2
End If
End With
i = i + 1
Next
End If
'Ende Filtereinstellungen merken
'Beispielcode
On Error Resume Next
ActiveSheet.ShowAllData 'Alles anzeigen
ActiveWindow.ScrollRow = 1 'Zeile 1 anzeigen
'Beispielcode Ende
'Beispielcode durch den Code ersetzen,
'welcher die externen Daten einfügt
'Filtereinstellungen wiederherstellen
For i = 1 To Filteranzahl
If Wert_Filter1(i) = "" Then
ZeileAutoFilter.AutoFilter Field:=i
Else
If Wert_Filter2(i) = "" Then
ZeileAutoFilter.AutoFilter Field:=i, Criteria1:=Wert_Filter1(i)
Else
ZeileAutoFilter.AutoFilter Field:=i, Operator:=Wert_UndOder(i), _
Criteria1:=Wert_Filter1(i), Criteria2:=Wert_Filter2(i)
End If
End If
Next i
'Ende Filtereinstellungen wiederherstellen
End With
End Sub

Gruß Klaus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Autofiltereinstellungen effizient speichern und wiederherstellen


Schritt-für-Schritt-Anleitung

Um die Autofiltereinstellungen in Excel zu speichern und nach einem Update externer Daten wiederherzustellen, kannst Du den folgenden VBA-Code verwenden. Dieser speichert die aktuellen Filtereinstellungen und stellt sie nach dem Aktualisieren der Daten wieder her.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen -> Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub FiltereinstellungenMerken()
    Dim Wert_Filter1() As String, Wert_Filter2() As String
    Dim Wert_UndOder(), Filteranzahl As Integer
    Dim i As Integer, f As Object, ZeileAutoFilter As Range
    With ActiveSheet
        'Filtereinstellungen merken
        Set ZeileAutoFilter = .Rows(1) 'bitte anpassen
        Filteranzahl = .AutoFilter.Filters.Count
        ReDim Preserve Wert_Filter1(Filteranzahl)
        ReDim Preserve Wert_Filter2(Filteranzahl)
        ReDim Preserve Wert_UndOder(Filteranzahl)
        If .AutoFilterMode Then
            i = 1
            For Each f In .AutoFilter.Filters
                With f
                    If .On Then
                        Wert_Filter1(i) = .Criteria1
                        Wert_UndOder(i) = .Operator
                        On Error Resume Next
                        Wert_Filter2(i) = .Criteria2
                    End If
                End With
                i = i + 1
            Next
        End If
        'Ende Filtereinstellungen merken
        'Beispielcode
        On Error Resume Next
        ActiveSheet.ShowAllData 'Alles anzeigen
        ActiveWindow.ScrollRow = 1 'Zeile 1 anzeigen
        'Beispielcode Ende
        'Beispielcode durch den Code ersetzen,
        'welcher die externen Daten einfügt
        'Filtereinstellungen wiederherstellen
        For i = 1 To Filteranzahl
            If Wert_Filter1(i) = "" Then
                ZeileAutoFilter.AutoFilter Field:=i
            Else
                If Wert_Filter2(i) = "" Then
                    ZeileAutoFilter.AutoFilter Field:=i, Criteria1:=Wert_Filter1(i)
                Else
                    ZeileAutoFilter.AutoFilter Field:=i, Operator:=Wert_UndOder(i), _
                    Criteria1:=Wert_Filter1(i), Criteria2:=Wert_Filter2(i)
                End If
            End If
        Next i
        'Ende Filtereinstellungen wiederherstellen
    End With
End Sub
  1. Passe die Zeile Set ZeileAutoFilter = .Rows(1) an die Zeile an, in der Deine Autofilter aktiviert sind.
  2. Führe das Makro aus, um die Filtereinstellungen zu speichern und wiederherzustellen.

Häufige Fehler und Lösungen

  • Fehler: "Kein Autofilter vorhanden"

    • Lösung: Stelle sicher, dass ein Autofilter auf der Tabelle aktiv ist, bevor Du das Makro ausführst. Du kannst dies überprüfen, indem Du auf das Menü "Daten" gehst und sicherstellst, dass "Filter" aktiviert ist.
  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Dies kann passieren, wenn die Anzahl der Filtereinstellungen nicht mit der Anzahl der Spalten übereinstimmt. Überprüfe, ob alle Filter korrekt gesetzt sind.

Alternative Methoden

Eine alternative Methode, um die Excel-Filtereinstellungen zu speichern, ist die Verwendung von Excel-Tabellen. Excel-Tabellen speichern die Formatierung und die Filtereinstellungen automatisch, selbst wenn Du externe Daten aktualisierst. Du kannst eine Tabelle erstellen, indem Du die Daten markierst und STRG + T drückst.


Praktische Beispiele

Wenn Du beispielsweise eine Liste von Verkäufen hast und nur die Verkäufe eines bestimmten Vertreters sehen möchtest, kannst Du den Autofilter aktivieren und die Daten filtern. Mit dem oben genannten VBA-Skript kannst Du sicherstellen, dass die Filtereinstellungen nach dem Aktualisieren der Daten erhalten bleiben.


Tipps für Profis

  • Speichere regelmäßig Deine Excel-Datei, insbesondere bevor Du externe Daten aktualisierst, um Datenverlust zu vermeiden.
  • Nutze den VBA-Editor, um Deine Makros zu organisieren und zu dokumentieren. Klar kommentierte Codes erleichtern das spätere Verständnis und die Anpassung.
  • Erstelle eine Schaltfläche in Deiner Excel-Oberfläche, um das Makro einfacher auszuführen.

FAQ: Häufige Fragen

1. Frage Wie kann ich die Filtereinstellungen in einer anderen Excel-Datei verwenden?

Antwort Du kannst den gleichen VBA-Code in die andere Datei kopieren und sicherstellen, dass die Struktur der Daten identisch ist. Die Filtereinstellungen werden dann entsprechend übernommen.

2. Frage Funktioniert dieser Ansatz in Excel 2016 und 2019?

Antwort Ja, der VBA-Code zur Speicherung und Wiederherstellung der Autofiltereinstellungen funktioniert in Excel 2016, 2019 sowie in anderen Versionen, die VBA unterstützen.

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