Array in Auto-Filter funktioniert nicht
17.04.2023 07:34:06
Florian
Hi Leute,
ich will auf einem Tabellenblatt DAten filtern mit verschiedenen Kriterien in der gleichen Spalte. Das ist der Code den ich dafür nutzen
Sub FilterBuchungen(wksBuchungen As Worksheet, strUmsatzZiffer As String, Optional varMonat As Variant, Optional strZiffer As String)
With wksBuchungen
.Select
If .FilterMode Then
.ShowAllData
End If
If IsArray(varMonat) Then
If Not IsEmpty(varMonat) Then
.Range("A2:X2").AutoFilter Field:=23, Criteria1:=Array(varMonat)
End If
ElseIf VarType(varMonat) = vbString Then
If varMonat > "" Then
.Range("A2:X2").AutoFilter Field:=23, Criteria1:=varMonat
End If
End If
If strUmsatzZiffer > "" Then
.Range("A2:X2").AutoFilter Field:=21, Criteria1:=strUmsatzZiffer
End If
'ActiveWindow.ScrollRow = 1
Cancel = True
End With
End Sub
Und damit rufe ich den Code auf:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rngUmsatzEinzel As Range
Dim rngUmsatzSummeZiffer1 As Range
Dim varMonat As Variant
Dim strZiffer As String
Dim lngZeilenBuchungen As Long
Dim lngZeilenAufteilen As Long
Dim lngZeilenManuell As Long
Set rngUmsatzEinzel = tblAuswertungBelegdatum.Range( _
"C8:D8," & _
"F8:H8")
Set rngUmsatzSummeZiffer1 = tblAuswertungBelegdatum.Range( _
"E8")
lngZeilenBuchungen = tblBuchungenPruefen2020.Cells(Rows.Count, 1).End(xlUp).Row
lngZeilenAufteilen = tblAufteilen.Cells(Rows.Count, 22).End(xlUp).Row
lngZeilenManuell = tblSonderfaelle.Cells(Rows.Count, 2).End(xlUp).Row
Select Case True
Case Not Intersect(rngUmsatzEinzel, Target) Is Nothing
If Target.Value > 0 Then
varMonat = tblAuswertungBelegdatum.Cells(39, Target.Column).Value
Filtern lngZeilenBuchungen, lngZeilenAufteilen, lngZeilenManuell, "Umsatz", varMonat
End If
Case Not Intersect(rngUmsatzSummeZiffer1, Target) Is Nothing
If Target.Value > 0 Then
varMonat = Array("April 2020", "Mai 2020")
FilterBuchungen tblBuchungenPruefen2020, "Umsatz", varMonat
End If
End Select
End Sub
Allerdings wird im ersten Case der Monat komplett ignoriert, sodass nur auf Umsatz gefiltert wird. Im zweiten Case wird nur auf Mai 2020 anstatt auf April 2020 und Mai 2020 gefiltert.
Kann jemand helfen?
Danke Euch !
Flo