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

Array in Auto-Filter funktioniert nicht

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

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

Betreff
Datum
Anwender
Anzeige
AW: Array in Auto-Filter funktioniert nicht
17.04.2023 07:49:46
Oberschlumpf
Hi Florian

kann jemand, nein!, kannst bitte DU per Upload eine Excel-Bsp-Datei mit allem, was erforderlich ist, zeigen?

Ciao
Thorsten


AW: Array in Auto-Filter funktioniert nicht
17.04.2023 08:56:56
Daniel
Hi

Wenn varMonat schon ein Array ist, kannst du Arrayfunktion weglassen.
Auch dann reicht criteria1:=varMonat
Allerdings musst du dann über den Parameter: operator:=xlfilterarray

Die genaue Schreibweise bitte in der Hilfe nachlesen oder mit dem Recorder ermitteln (mindestens drei unterschiedliche Werte filtern)

Die nächste Frage wäre, wie die Werte im Tabellenblatt stehen. Für deine Filtermethode müssten es Texte sein, die so geschrieben sind wie du sie filterst.
Sollten es Datumswerte sein, die nur so formatiert sind (MMMM JJJJ) musst du anders filtern.

Gruß Daniel


Anzeige
AW: Array in Auto-Filter funktioniert nicht
17.04.2023 11:57:47
Florian
Hab es um xlFilterValues im Operator ergänzt. Jetzt klappts! Danke :)

341 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige