AutoFilterKriterien

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox TextBox
Bild

Betrifft: AutoFilterKriterien
von: Samuel
Geschrieben am: 15.07.2015 14:52:42

Hallo,
habe das Forum schon länger durchsucht und leider nur ähnliche Beiträge gefunden, mit denen ich ein bisschen weitergekommen bin, aber aktuell nicht mehr weiter weiß. Meine Problemstellung ist die Folgende, ich würde gerne mitHilfe eines externen Arbeitsblattes mitHilfe eines Makros ein anderes Excel-Sheet öffnen und über Autofilter mir Kriterien auswählen, für die ich vom anderen Blatt die Daten kopiere. Ich hab all dies bewerkstelligt, jedoch nur mit vorherigen Festlegen des Filterkriteriums
ActiveSheet.UsedRange.AutoFilter Field:=4, Criteria1:="Kriterium"
Jetzt würde ich jedoch mir für das Blatt, das ich öffne, mir alle möglichen Kriterien in Spalte 4 anzeigen lassen und mir daraus eins auswählen, gerne auch nur über TextBox Eingabe. Mit Hilfe des Forums und der Excel Hilfe kam ich soweit
With ActiveSheet.AutoFilter
currentFiltRange = UsedRange
With .Filters
ReDim filterArray(1 To .Count, 1 To 3)
counterSize = .Count
For i = 1 To .Count
With .Item(i)
If .On Then
filterArray(i, 1) = .Criteria1
If .Operator Then
filterArray(i, 2) = .Operator
filterArray(i, 3) = .Criteria2
End If
End If
End With
Next i
End With
End With

Jedoch ist im filterArray keinerlei Information gespeichert. Mein primäres Problem ist herauszufinden, wie ich auf alle Einträge aus Spalte D zugreife und mir die zeigen lassen.
Vielen Dank schon einmal :)

Bild

Betrifft: AW: AutoFilterKriterien
von: fcs
Geschrieben am: 16.07.2015 05:24:31
Hallo Samuel,
es kann extrem komplex werden die Funktionen des Autofilters per VBA nachzubauen - abhängig vom Datentyp (Zahlen, Text, Datum/Zeit) und den genutzen Filterfunktionen.
Es ist noch verhältnismäßig einfach Inhalte auf "=" zu filtern - Einzelwert oder auch eine Liste von Werten.
Die Auswahlliste der vorhandenen Werte kann man erstellen indem man in einer Schleife eine Liste ohne doppelte Eintrage in einem Array erstellt. Diese Liste wird dann sortiert und als Auswahlliste für eine Combobox (Filtern nach Einzelwerten) oder eine Listbox mit Mehrfachauswahl verwendet.
Ich würde an deiner Stelle in der Datei, in der die erforderlichen Makros gespeichert werden, ein ungebundenes Userform erstellen mit dem der Ablauf gesteuert wird wie
- Datendatei schreibgeschütz üffnen
- aktivieren des Autofilters
- übertragen der gefilterten Daten
- schließen der Datendatei
Die Filterwerte für den Autofilter setzt du dann aber immer direkt in der Datendatei. Dann hast du alle Möglichkeiten des Autofilters zur Verfügung, musst dich aber nicht mit dem Nachbau des Autofilters unter VAB herumquälen.
Gruß
Franz

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Eintrag in Combobox mit if auswerten"