Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Autofilter Variablen definieren
#1
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
Antworten Top
#2
Hallo Theo,

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

Code:
If Worksheets("Tabelle1").AutoFilterMode
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#3
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste