Clever-Excel-Forum

Normale Version: VBA Autofilter mit mehreren Kriteren und Variale
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Code:
Sub Autofilter()   
Dim Ansicht1 as String
Dim Jahr1 as Integer

Jahr1=2020
Ansicht1 = Jahr1
ActiveSheet.Range("$A$23:$R$509").Autofilter Field:=1, Criteria1:=Array( _
        Ansicht1, "2022", "2023", "2024", "Ergebnis", "Gesamt"), Operator:=xlFilterValues

End Sub


Hallo Zusammen,
habe wieder mal ein Problem dass ich selber nicht lösen kann :D

ich möchte über VBA im Autofilter mehrere Kriterien setzen, sobald ich aber eine Variable als Kriterium einfüge funktioniert der Code zwar, aber das Kriterum der Variable wird nicht gesetzt. Egal ob als Integer (Jahr1) oder String (Ansicht1)

Gruß stchwint
Hallo,

in meinem Nachbau funktioniert es mit der Stringvariante.

Gruß Uwe
Hallo Kuwer,

danke für deine Antwort. Bei mir funktioniert es jetzt auch. Jahr1 ist bei mir noch eine Public Variable mit einem bestimmten Zellwert, der sich ändern kann. Ich muss immer erst ein Makro laufenlassen der für die Variable den Zellwert zuweist.
Habe nun ein neues Problem,

der VBA-Code funktioniert und wird richtig ausgeführt, aber es kommt jedes mal eine Fehlermeldung " Die Autofilter-Methode des Range Objekts konnte nicht ausgeführt werden". Selbst mit einem anderen AutoFilter-Makro hängt der Code dann an der selben Stelle. Der Code hängt immer an der Stelle 'a oder b'. Möchte ja eig. nur dass er mithilfe des VBA-Autofilters Zeilen möglichst schnell ein- und ausblendet. Für Jede Ansicht sollen dann die Pfeile des Autofilters nicht mehr sichtbar sein.

Die Excel stürzt wegen dem Code auch öfters ab und schließt sich einfach, obwohl die Ausführung an sich funktioniert.

Code:
Sub Autofilter123()
Dim Ansicht As String
Dim Jahr1s As String
Dim Jahr2s As String
Dim Jahr3s As String
Dim Jahr4s As String
Dim Jahr5s As String
'MsgBox Jahr1
Call Jahre_variablen_definieren
Jahr1s = Jahr1
Jahr2s = Jahr2
Jahr3s = Jahr3
Jahr4s = Jahr4
Jahr5s = Jahr5

Ansicht = Worksheets(kg_TabelleErgebnisName).ComboBox1.Value

Dim Liste As Range
Set Liste = Worksheets(kg_TabelleErgebnisName).Range("A23:R23")



'Liste.Autofilter field:=1
If Ansicht = "Alle" Then GoTo 2

Liste.Autofilter Field:=1, Criteria1:=Array(Ansicht, "Ergebnis"), Operator:=xlFilterValues 'a
Liste.Autofilter Field:=5, Criteria1:="<>Muster"

GoTo 3

2:



If Frz_Jahre = 1 Then
Liste.Autofilter Field:=1, Criteria1:=Array("Gesamt", "Ergebnis", Jahr1s), Operator:=xlFilterValues
End If
If Frz_Jahre = 2 Then
Liste.Autofilter Field:=1, Criteria1:=Array("Gesamt", "Ergebnis", Jahr1s, Jahr2s), Operator:=xlFilterValues

End If

If Frz_Jahre = 3 Then
Liste.Autofilter Field:=1, Criteria1:=Array("Gesamt", "Ergebnis", Jahr1s, Jahr2s, Jahr3s), Operator:=xlFilterValues
End If
If Frz_Jahre = 4 Then
Liste.Autofilter Field:=1, Criteria1:=Array("Gesamt", "Ergebnis", Jahr1s, Jahr2s, Jahr3s, Jahr4s), Operator:=xlFilterValues
End If
If Frz_Jahre = 5 Then
Liste.Autofilter Field:=1, Criteria1:=Array("Gesamt", "Ergebnis", Jahr1s, Jahr2s, Jahr3s, Jahr4s, Jahr5s), Operator:=xlFilterValues 'b
End If

3:
Liste.Autofilter Field:=5, Criteria1:="<>Muster"

Liste.Autofilter
End Sub