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

filterkriterien in variable speichern?

Forumthread: filterkriterien in variable speichern?

filterkriterien in variable speichern?
16.08.2002 12:12:30
richard
hi leute.
ich bedarf eures kollektiven sachverstandes ;-)

ich nutze in einer tabelle einen autofilter. die kriterien hierfür sind variabel wählbar (jeder nutzer filtert wie er will), welche dann den filter setzen.
ich müßte aber den filter kurz ausschalten und anschließend wieder aktivieren und zwar mit den gleichen kriterien wie vorher. kann ich die filterkriterien irgendwie abfragen oder einer variablen übergeben? wenn ja wie?

vielen dank schonmal im vorraus
mfg richi

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: filterkriterien in variable speichern?
16.08.2002 12:44:56
Micha
hi,

schau mal in deiner vba-hilfe:
ein worksheet-obj. hat eine autofilter-methode.
benutze die um die filter wieder zu setzen.
denn, das autofilter-obj. hat die auflistung filters was alle filter repräsentiert. schau dir deren eigenschaften zum auslesen der kriterien. allerdings sind deren eigenschaften schreibgeschützt, d.h. um den filter wieder zu setzen ->autofilter-methode.

mfg

Anzeige
Re: filterkriterien in variable speichern?
16.08.2002 13:11:54
richard
das ist schon klar.

ActiveSheet.Range("A1").Select

Selection.AutoFilter Field:=1, Criteria1:=("=" filterkriterium"), Operator:=xlAnd


ActiveSheet.Range("A1").Select

auf dem blatt sind aber mehrere filter, und die user haben die möglichkeit frei die kriterien zu verändern. wie kann ich diese kriterien in eine variable übergeben? den filter mit ner veriablen füllen ist kein problem. aber rauszubekommen wie die variablen sind, da hakt es.

mit

test = Selection.AutoFilter Field:=1, Criteria11 (auch in unterschiedlichen schreibweisen)


hat es nicht funktioniert.
wie bekomme ich die momentan eingestellten kriterien raus?????

mfg richi

Anzeige
Re: filterkriterien in variable speichern?
16.08.2002 13:48:56
richard
ich nochmal. habe was in der recherche gefunden

Sub test()


With ActiveSheet.AutoFilter.Filters(1)
If .On Then
MsgBox (.Criteria1)
Worksheets("Task-Liste").Range("K1") = (.Criteria1)
End If
End With


End Sub

damit kann ich was anfangen. mfg richi

;
Anzeige

Infobox / Tutorial

Filterkriterien in Variablen speichern und wiederherstellen


Schritt-für-Schritt-Anleitung

  1. Autofilter aktivieren: Stelle sicher, dass der Autofilter für deine Tabelle aktiviert ist. Du kannst dies in Excel ganz einfach über das Menü "Daten" -> "Filter" -> "Autofilter" tun.

  2. Filterkriterium speichern: Um das aktuelle Filterkriterium in einer Variablen zu speichern, kannst du den folgenden VBA-Code verwenden:

    Sub FilterKriteriumSpeichern()
       Dim filterKriterium As String
       With ActiveSheet.AutoFilter.Filters(1)
           If .On Then
               filterKriterium = .Criteria1
               MsgBox "Aktuelles Kriterium: " & filterKriterium
           End If
       End With
    End Sub
  3. Filter zurücksetzen: Um den Filter später wiederherzustellen, kannst du den gespeicherten Wert verwenden:

    Sub FilterWiederherstellen()
       Dim filterKriterium As String
       filterKriterium = "Dein Kriterium" ' Hier das gespeicherte Kriterium einsetzen
       ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=filterKriterium
    End Sub

Häufige Fehler und Lösungen

  • Fehler: "Filter ist nicht aktiv"
    Lösung: Stelle sicher, dass der Autofilter auf dem Arbeitsblatt aktiviert ist, bevor du versuchst, auf die Filterkriterien zuzugreifen.

  • Fehler: "Schreibgeschützt"
    Lösung: Beachte, dass die Eigenschaften der Filter in Excel schreibgeschützt sind. Du musst die Autofilter-Methode verwenden, um die Filtereinstellungen zu speichern und zurückzusetzen.


Alternative Methoden

Wenn du die Filtereinstellungen nicht in VBA speichern möchtest, kannst du auch die Filtereinstellungen direkt in einer Zelle speichern. Zum Beispiel:

  1. Wähle eine Zelle, um dein Kriterium zu speichern.
  2. Verwende die Formel: =FILTER(A:A, B:B="Dein Kriterium"), um die gefilterten Daten in eine andere Tabelle zu kopieren.

So kannst du die Filtereinstellungen auch ohne VBA verwalten.


Praktische Beispiele

Hier sind zwei Beispiele zur Verwendung von Filterkriterien:

  1. Speichern von mehreren Filterkriterien:
    Wenn du mehrere Kriterien hast, kannst du diese in einem Array speichern:

    Dim filterKriterien(1 To 2) As String
    filterKriterien(1) = "Kriterium1"
    filterKriterien(2) = "Kriterium2"
    ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=filterKriterien, Operator:=xlFilterValues
  2. Dynamisches Filtern:
    Um die Filterkriterien dynamisch zu ändern, kannst du die Eingabewerte von der Benutzeroberfläche abfragen:

    Dim userInput As String
    userInput = InputBox("Gib dein Filterkriterium ein:")
    ActiveSheet.Range("A1").AutoFilter Field:=1, Criteria1:=userInput

Tipps für Profis

  • Verwende Namensbereiche: Speichere deine Filterkriterien in Namensbereichen, um die Übersichtlichkeit zu erhöhen und die Wartung zu erleichtern.
  • Fehlerbehandlung: Füge in deinen VBA-Skripten eine Fehlerbehandlung hinzu, um Probleme beim Zugriff auf die Filter zu vermeiden.
  • Dokumentation: Halte deine VBA-Codes gut dokumentiert, damit du und andere Benutzer später leichter verstehen, wie die Filtereinstellungen gespeichert und wiederhergestellt werden.

FAQ: Häufige Fragen

1. Wie kann ich die Filtereinstellungen speichern, wenn mehrere Filter aktiv sind?
Du kannst die Filterkriterien für jede Filtergruppe einzeln abfragen und in separaten Variablen speichern.

2. Gibt es eine Möglichkeit, die Filtereinstellungen automatisch zu speichern, wenn ich die Datei schließe?
Ja, du kannst das Workbook_BeforeClose-Ereignis verwenden, um die Filtereinstellungen vor dem Schließen der Datei zu speichern.

3. Welche Excel-Versionen unterstützen diese Funktionen?
Die beschriebenen Funktionen sind in Excel 2007 und neueren Versionen verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige