AutoFilter mit VBA

Bild

Betrifft: AutoFilter mit VBA
von: Fabian
Geschrieben am: 14.10.2015 13:39:48

Hallo liebe Leute,
ich wollte in mein VBA einen AutoFilter einbauen, weil ich mir dachte, dass das am schnellsten geht, wenn ich aus einer Liste bestimmte Daten - nun ja - gefiltert haben will. ^^
Aktuell stehe ich aber auf dem Schlauch. Meines Spalten A bis E sind gefüllt bis Zeile 34, gefiltert werden soll nach allen Zellen in Spalte A, bei denen an 20. Stelle ein "F" steht. Hier die zwei Codezeilen, um die es geht (es passiert vorher nicht besonderes im Programm):


ActiveWorkbook.Worksheets(1).Range("A1:E1").AutoFilter
    ActiveWorkbook.Worksheets(1).Range("$A$1:$E$34").AutoFilter Field:=20, Criteria1:="F",  _
Operator:=xlAnd Criteria1:="F"
"Die AutoFilter-Methode des Range-Objektes konnte nicht ausgeführt werden."
Was fehlt?? Und benötige ich eigentlich das "xland"?
Ich hoffe, ihr könnt mir helfen.
Viele Grüße
Fabian
P.S.: Wie kann ich auf Antworten auf meine Frage zurück antworten, wenn ich keine Mail bekomme?

Bild

Betrifft: AW: AutoFilter mit VBA
von: Daniel
Geschrieben am: 14.10.2015 13:56:56
Hi
der Paramter FIELD legt fest, in welcher Spalte die folgenden Bedingungen erfüllt sein müssen, damit die Zeile angezeigt wird.
Field:=20 wäre die 20. Spalte, das kann schon mal nicht funktionieren, da du nur einen Zellbereich mit 5 Spalten angegeben hast.
du willst alle Zellen in Spalte A überprüften, also muss FIELD:=1 sein.
zum xlAnd:
du kannst pro Spalte 2 Filterkriterien angeben (Criteria1 und Criteria2)
über dein Paramter OPERATOR legst du fest, ob beide Bedingungen gleichzeitig (xlAnd) erfüllt sein müssen, oder ob es ausreicht, wenn nur eine der beiden zutrifft (xlOr).
du hast aber nur eine Bedingung, also brauchst du das 2. Kriterium und den Operator nicht.
für deine Bedingung brauchst du einen Textfilter, den du aus den entsprechenden Jokerzeichen zusammensetzen musst:
"?" = genau ein beliebiges Zeilen
"*" = beliebige Zeichen in beliebiger Anzahl
ergibt dann als Filter:

... .AutoFilter Field:=1, Criteria1:="=???????????????????F*"
bzw für die Menschen die maximal bis 3 Zählen wollen und der Meinung sind, dass für solche stupiden Aufgaben der Computer besser geeignet ist:
... .AutoFilter Field:=1, Criteria1:="=" & String(19, "?") & "F*"
Gruß Daniel

Bild

Betrifft: AW: AutoFilter mit VBA
von: Fabian
Geschrieben am: 15.10.2015 10:36:43
Hallo Daniel,
super, danke, das wusste ich nicht, hatte gedacht Field steht für die Stelle im Text.
Hat funktioniert, also vielen Dank :)
Viele Grüße
Fabian

 Bild

Beiträge aus den Excel-Beispielen zum Thema "AutoFilter mit VBA"