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

Forumthread: Filter Funktion VBA

Filter Funktion VBA
27.09.2022 08:06:52
Oliver
Hallo zusammen,
ich habe folgendes Problem.
Wenn ich über ein Makro einen Blattschutz hinzufüge und verschiedene Optionen offen lasse,
werden im Menüband leider diese Funktionen ausgeblendet ( grau hinterlegt ) .
Genau gesagt, geht es um die Filter Funkton.
Hier werden die Varianten " Alle Filter Löschen usw. " ausgeblendet..
Wie bekomme ich die denn aktiviert ?
Das ist das makro was ich bis jetzt nutzte .
'Blattschutz
Columns("G:G").Select
Range("G:G,AK:AK").Select
Range("AK1").Activate
Selection.Locked = False
Selection.FormulaHidden = False
ActiveWindow.ScrollColumn = 6
Range("G2").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowInsertingColumns:=False, AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True, AllowFormattingColumns:=True
Danke schonmal im vorraus..
Gruß Oliver
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
du bist nicht alleine :-)
27.09.2022 08:23:26
Oberschlumpf
Hi Oliver,
deine Frage wurde so, oder so ähnlich, mind. schon mal in 2018 gestellt:
https://www.ms-office-forum.net/forum/showthread.php?t=354246
Du müsstest in deiner Tabelle entweder...
...einen Button platzieren
...oder eine aktuell nicht genutzte Zelle mit Hilfe SelectChange-Ereignis reagieren lassen
Für eine dieser Optionen musst du ein Makro erstellen, welches
a) den Blattschutz erst mal entfernt
b) alle gesetzten Filter zurücksetzt (dein "Filter löschen")
c) Blattschutz wieder aktivieren
Versuch mal dein Glück.
Wenn du nicht weiterkommst, zeig bitte eine Bsp-Datei mit Bsp-Daten und deinem bis dahin erstellten VBA-Code.
Ciao
Thorsten
Anzeige
AW: du bist nicht alleine :-)
27.09.2022 08:30:00
Oliver
Danke,
aber das ist eigendlich nicht das was ich wollte.... also einen neuen Button integrieren..
Es muß doch eine Möglichkeit geben , das in einem Makro freizuschalten.
Soweit ich weiß, haben doch alle Befehle im Menüband einen eigenen Nummerischen wert ..
Geht es nicht darüber. das man sagt. Wert XY einfach freigeben...
Anzeige
...du bist zwar noch immer nicht alleine...
27.09.2022 08:40:04
Oberschlumpf
...aber zumindest wieder ohne mich
Ich hätte nix gegen eine Button- oder SelectChange-Ereignis-Lösung.
Aber du bist ja anderer Meinung.
Weiter viel Erfolg.
AW: ...du bist zwar noch immer nicht alleine...
27.09.2022 08:44:03
Oliver
Hallo,
ich bin nicht anderer Meinung, aber ich kann in dem Sheeet keine zusätzlichen Button integrieren..
Das darf ich leider nicht. deshalb die Frage nach einer anderen Lösung :-)
gruß Oliver
Anzeige
AW: ...du bist zwar noch immer nicht alleine...
27.09.2022 08:50:38
Oberschlumpf
...dann wäre ja noch die Möglichkeit mit SelectChange-Ereignis
bedeutet...
- eine bis jetzt und in Zukunft nicht genutzte Zelle wird "überwacht"
- diese Zelle sollte vielleicht gefärbt sein oder einen Kommentar erhalten oder sonst irgdwie als nun "ausführbare Zelle" kenntlich gemacht werden
- und bei Auswahl (1x Anklicken) dieser Zelle - und auch nur genau bei dieser Zelle! - wird das zuvor von mir beschriebene Makro gestartet
Anzeige
Definition "Blattschutz"
27.09.2022 10:08:16
lupo1
Wenn ein Blatt neu rechnet, wird die Struktur nicht geändert. Wird aber menüseitig gefiltert, dann schon. Dann würde der Blattschutz verletzt. Wenn Du formelseitig filterst (=FILTER()), ist alles wieder gut.
Danke für die Crossposting-Referenz! So ist es richtig.
Anzeige
AW: Filter Funktion VBA
28.09.2022 15:02:37
Oliver
Hallo zusammen,
ich habe es jetzt folgendermaßen gelöst..
Obwohl ich eigendlich keine Buttons hinzufügen soll.
Füge ich über ein Makro einen Button hinzu , und hinterlege dort das unten gezeigte Makro.
Jetzt hab ich aber das Problem, das jedesmal beim ausführen ein Button erstellt wird, und wenn keine Filter gesetzt sind ein Fehler kommt.
Ich hoffe ihr Hilft mir noch :-)

Sub Autofilterlöschen()
ActiveSheet.Unprotect
ActiveSheet.Buttons.Add(0, 1.5, 25.5, 24).Select
Selection.OnAction = "Autofilterlöschen"
Rows("1:1").Select
ActiveSheet.ShowAllData
End Sub

Anzeige
AW: Filter Funktion VBA
28.09.2022 15:19:35
Daniel
Hi
im Prinzip reicht als Makro:

Sub Autofilterlöschen()
ActiveSheet.Unprotect
On Error Resume Next
ActiveSheet.ShowAllData
ON Error Goto 0
ActiveSheet.Protect
End Sub
der Button dazu muss nur einmalig erstellt und mit dem Button verknüpft werden (geht am einfachsten über das Kontextmenü des Buttons)
daher macht man das besser von Hand.
Solls ein Makro sein, dann schreibt man ein zweites Makro, mit welchem der Button bei Bedarf erstellt werden kann.

Sub ButtonErstellen()
ActiveSheet.Unprotect
ActiveSheet.Buttons.Add(0, 1.5, 25.5, 24).Select
Selection.OnAction = "Autofilterlöschen"
ActiveSheet.Protect
End Sub
dh das erste Makro läuft bei einem Klick auf den Button und das zweite lässt man laufen, wenn der Button nicht vorhanden ist und erstellt werden muss.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filter Funktion in VBA aktivieren und nutzen


Schritt-für-Schritt-Anleitung

Um die Excel VBA Filter Funktion zu aktivieren, befolge diese Schritte:

  1. Blattschutz entfernen: Stelle sicher, dass das Arbeitsblatt nicht geschützt ist, bevor Du die Filter aktivierst.

    ActiveSheet.Unprotect
  2. Filter anwenden: Verwende die ShowAllData-Methode, um alle Filter in der Tabelle zu löschen.

    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
  3. Blattschutz wieder aktivieren: Schütze das Arbeitsblatt erneut, nachdem Du die Filter angewendet hast.

    ActiveSheet.Protect
  4. Makro erstellen: Du kannst ein Makro erstellen, das diese Schritte automatisch ausführt.

    Sub Autofilterlöschen()
       ActiveSheet.Unprotect
       On Error Resume Next
       ActiveSheet.ShowAllData
       On Error GoTo 0
       ActiveSheet.Protect
    End Sub

Häufige Fehler und Lösungen

  • Excel Filter Funktion nicht vorhanden: Wenn die Filteroptionen im Menüband ausgegraut sind, stelle sicher, dass der Blattschutz entfernt ist und die entsprechenden Zellen nicht gesperrt sind. Überprüfe auch, ob die Filterfunktion im VBA-Code aktiviert wurde.

  • Fehler beim Ausführen von Makros: Wenn beim Ausführen des Makros ein Fehler auftritt, könnte dies daran liegen, dass keine Filter gesetzt sind. Füge On Error Resume Next vor der ShowAllData-Methode hinzu, um diesen Fehler zu umgehen.


Alternative Methoden

Falls Du keine Buttons in Dein Arbeitsblatt integrieren kannst, kannst Du die Filter auch über das SelectChange-Ereignis aktivieren. Hierbei wird eine unsichtbare Zelle überwacht, die beim Klicken das Makro ausführt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Call Autofilterlöschen
    End If
End Sub

Praktische Beispiele

Hier sind einige nützliche Beispiele für den Einsatz der Excel 2019 Filter Funktion:

  • Filter in Excel VBA aktivieren:

    Sub FilterAktivieren()
       With ActiveSheet.ListObjects("Tabelle1")
           .Range.AutoFilter Field:=1, Criteria1:="=Ja"
       End With
    End Sub
  • Dynamischer Filter: Erstelle einen Filter basierend auf Zellenwerten.

    Sub DynamischerFilter()
       Dim kriterium As String
       kriterium = Range("B1").Value
       ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=1, Criteria1:=kriterium
    End Sub

Tipps für Profis

  • Verwende selection.formulahidden: Um sicherzustellen, dass Formeln in bestimmten Zellen sichtbar sind, setze Selection.FormulaHidden = False für die gewünschten Zellen.

  • Fehlerbehandlung: Implementiere On Error Resume Next in Deinen Makros, um unerwartete Fehler beim Filtern zu vermeiden.

  • Button einmalig erstellen: Erstelle einen Button einmalig und verknüpfe ihn mit dem Makro, um die Benutzererfahrung zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die Filter Funktion in Excel 2019 aktivieren?
Die Filter Funktion in Excel 2019 wird aktiviert, indem Du sicherstellst, dass der Blattschutz entfernt ist und die entsprechenden Zellen nicht gesperrt sind.

2. Was tun, wenn die Filter Funktion nicht vorhanden ist?
Überprüfe, ob das Arbeitsblatt geschützt ist oder ob die Zellen, die gefiltert werden sollen, gesperrt sind. Entferne den Blattschutz, um die Funktion zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige