Clever-Excel-Forum

Normale Version: VBA Autofilter Variablen definieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo again

Ich habe im Netz folgendes Makro gefunden. Da ich "Option Explicit" an habe, erhalte ich die Meldung, dass Variablen nicht definiert sind.
Z.B. "AutoFilterMode"
Welche Variablen muss ich wie definieren, damit das Makro mit "Qption Explicit" läuft?

--------------------------------
Private Sub Worksheet_Calculate()
Dim f As Filter, i As Long
   On Error Resume Next
   If AutoFilterMode Then
      For i = 1 To AutoFilter.Filters.Count
         If AutoFilter.Filters(i).On Then
            ActiveCell.CurrentRegion.Cells(1, i).Interior.ColorIndex = 3
         Else
            ActiveCell.CurrentRegion.Cells(1, i).Interior.ColorIndex = Null
         End If
      Next
   Else
      ActiveCell.CurrentRegion.Rows(1).Interior.ColorIndex = Null
   End If
End Sub

 

-------------------


Danke für Eure Hilfe



Gruss



Theo
Hallo Theo,

schau dir doch mal den Code von Uwe genau an. Stand da das AutofilterMode alleine?

Code:
If Worksheets("Tabelle1").AutoFilterMode
Hallo Stefan

Ja, ich habe den Code 1:1 kopiert.
Ich weiss allerdings nicht, ob dieser von Uwe war.
Ich konnte ihn, trotz intensivem Suchen, nicht mehr finden...

------------------------------
Ich habe aber eine andere Lösung gefunden, in Form einer Funktion.
Es braucht halt eine zusätzliche Zeile für das Outputkriterium.

Hier der Code:

Public Function isFilterOn2(rng As Range) As Boolean
Dim f As Filter, i As Integer
With rng.Parent
    If .AutoFilterMode Then
        If .FilterMode Then
            With .AutoFilter
                If .Filters(rng.Column - .Range.Column + 1).On Then _
                isFilterOn2 = True
            End With
        End If
    End If
End With
End Function

Funktioniert bei mir tadellos.

Gruss und Dank für Deine Antwort


Theo