Thema Datum  Von Nutzer Rating
Antwort
28.06.2021 16:23:44 Joachim
Solved
28.06.2021 17:08:31 Mase
*****
Solved
Rot Vielleicht hilft Dir das etwas
29.06.2021 09:16:46 Joachim
NotSolved
29.06.2021 09:32:09 Mase
NotSolved
29.06.2021 11:05:37 Joachim
NotSolved
29.06.2021 11:24:15 Mase
NotSolved
29.06.2021 11:28:15 Joachim
NotSolved
29.06.2021 14:17:16 Mase
NotSolved

Ansicht des Beitrags:
Von:
Joachim
Datum:
29.06.2021 09:16:46
Views:
521
Rating: Antwort:
  Ja
Thema:
Vielleicht hilft Dir das etwas

Hi,

danke für die Hilfe. Genau das hab ich bisher nie verstanden.

Das macht das ganze natürlich wieder etwas komplexer. Hab das jetzt so gelöst und in meinem Beispiel funktioniert es.
 

Public Sub Testo()

 Dim vntCriteria, Array2d, Array3d As Variant

Set w = Worksheets("Test")

With w.AutoFilter
    currentFiltRange = .Range.Address
    
    ReDim vntCriteria(1 To .Filters.Count)
    ReDim lngCount(1 To .Filters.Count)
    
    For i = 1 To .Filters.Count
        If .Filters(i).On Then
            vntCriteria(i) = .Filters(i).Count
            Else
                vntCriteria(i) = 0
        End If
    Next i

    MsgBox Join(vntCriteria, vbCrLf)

    ReDim Array2d(1 To .Filters.Count, 1 To 3)
    ReDim Array3d(1 To .Filters.Count)

    For i = 1 To .Filters.Count
        
        If vntCriteria(i) < 3 Then

            With .Filters
                     With .Item(i)
                        If .On Then
                            Array2d(i, 1) = .Criteria1
                            If .Operator Then
                                Array2d(i, 2) = .Operator
                                Array2d(i, 3) = .Criteria2
                            End If
                        End If
                    End With
            End With
            
            ElseIf vntCriteria(i) > 2 Then
                Array3d(i) = .Filters(i).Criteria1
        End If
    
    Next i

    If ActiveSheet.FilterMode Then .ShowAllData

    For i = 1 To .Filters.Count
    
        If vntCriteria(i) < 3 Then

            If Not IsEmpty(Array2d(i, 1)) Then
                If Array2d(i, 2) Then
                    w.Range(currentFiltRange).AutoFilter Field:=i, _
                        Criteria1:=Array2d(i, 1), _
                            Operator:=Array2d(i, 2), _
                        Criteria2:=Array2d(i, 3)
                Else
                    w.Range(currentFiltRange).AutoFilter Field:=i, _
                        Criteria1:=Array2d(i, 1)
                End If
            End If
            
            ElseIf vntCriteria(i) > 2 Then
            
            w.Range(currentFiltRange).AutoFilter Field:=i, Criteria1:=Array3d(i), Operator:=xlFilterValues
            
        End If
    Next i
End With

End Sub

Grüße

Achim


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
28.06.2021 16:23:44 Joachim
Solved
28.06.2021 17:08:31 Mase
*****
Solved
Rot Vielleicht hilft Dir das etwas
29.06.2021 09:16:46 Joachim
NotSolved
29.06.2021 09:32:09 Mase
NotSolved
29.06.2021 11:05:37 Joachim
NotSolved
29.06.2021 11:24:15 Mase
NotSolved
29.06.2021 11:28:15 Joachim
NotSolved
29.06.2021 14:17:16 Mase
NotSolved