Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dropdownpfeile Autofilter

Dropdownpfeile Autofilter
Charly
Hallo zusammen,
habe Folgende Fragen.
Ich hoffe ihr könnt mir nochmal helfen?
sh. Code unten
1. Beim Autofilter verdecken mir die Dropdownpfeile teilweise die Überschriften.
Da ich nur eine Spalte filtern muss hab ich's wie unten gelöst.
Geht das eleganter?
2. Wenn ich beim Ein- und Ausschalten des Autofilters nicht eine Zelle [A1000] selecte,
kann ich in Format- und Symbolleiste einige Symbole nicht anklicken.
Select ist nicht so toll. Gibt es dafür eine andere Möglichkeit?
3. Ich verstehe nicht warum ich zum Ein- und Ausschalten den selben Code verwenden muss.
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False
Kann mir das mal Jemand erklären?
Hier der Code
Private Sub ToggleButton1_Click()
'*** Filter ***
If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Filter Off"
ToggleButton1.BackColor = RGB(255, 0, 255)
'Filter einschalten
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = False
With [A3]
.AutoFilter Field:=1, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=2, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=3, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=4, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=5, Criteria1:=">0", Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=6, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=7, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=8, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=9, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=10, Operator:=xlAnd, visibledropdown:=False
.AutoFilter Field:=11, Operator:=xlAnd, visibledropdown:=False
End With
With ActiveSheet
.Shapes("CommandButton3").Visible = True
.Shapes("CommandButton1").Visible = True
.[A1000].Select
End With
ActiveWindow.ScrollRow = 3
Else
ToggleButton1.Caption = "Filter On"
ToggleButton1.BackColor = RGB(0, 255, 255)
'Filter ausschalten
With ActiveSheet
If .AutoFilterMode = True Then .AutoFilterMode = False
.Shapes("CommandButton3").Visible = False
.Shapes("CommandButton1").Visible = False
.[A1000].Select
End With
ActiveWindow.ScrollRow = 3
End If
End Sub
Danke vorab.
Charly
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dropdownpfeile Autofilter
15.08.2010 16:07:30
fcs
Hallo Charly,
1. Beim Autofilter verdecken mir die Dropdownpfeile teilweise die Überschriften.
Da ich nur eine Spalte filtern muss hab ich's wie unten gelöst.
Geht das eleganter?

Da du nur Eine Spalte (E bzw. 5) filtern willst, kannst du den Autofilter auch auf diese Spalte beschränken.
Ob der Dropdownpfeil auch noch ausgeblendet bleiben muss: ?
Code-Beispiel siehe unten.
2. Wenn ich beim Ein- und Ausschalten des Autofilters nicht eine Zelle [A1000] selecte,
kann ich in Format- und Symbolleiste einige Symbole nicht anklicken.
Select ist nicht so toll. Gibt es dafür eine andere Möglichkeit?

Excel aktiviert immer nur die Menüs, die für das Element, das gerade den Focus hat, zulässig sind. In deinem Fall den Toggle-Button. Leider hat der der Toggle-Button im Gegensatz zu den Commandbuttons nicht die editierbare Eigenschaft "TakeFocusOnClick" mit der verhindert werden kann, dass ein Steuerelement beim Anklicken den Fokus bekommt. Der Toggle-Button behält nach dem Anklicken den Fokus und somit sind auch nur die entsprechenden Menüs aktiv. Warum selektierst du denn Zelle A1000, A3 tut es doch auch.
3. Ich verstehe nicht warum ich zum Ein- und Ausschalten den selben Code verwenden muss.
If ActiveSheet.AutoFilterMode = True Then ActiveSheet.AutoFilterMode = False

Diese Anweisung schaltet den Autofilter-Mosus ab wenn er aktiv ist. Wenn der Modus nicht aktiv ist, dann bleibt er nicht aktiv. Wird verständlicher, wenn man die If-Anweisung in nicht gekürzter Form schreibt.
If ActiveSheet.AutoFilterMode = True Then
ActiveSheet.AutoFilterMode = False
Else
'do nothing
End If
Gruß
Franz
Private Sub ToggleButton1_Click()
'*** Filter ***
Application.ScreenUpdating = False
With ActiveSheet
If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Filter Off"
ToggleButton1.BackColor = RGB(255, 0, 255)
'Filter einschalten
If .AutoFilterMode = True Then .AutoFilterMode = False
'Autofilter in Spalte E ab Zeile 3 setzen
With .Range(.Cells(3, 5), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 5))
.AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd ', visibledropdown:=False
End With
.Shapes("CommandButton3").Visible = True
.Shapes("CommandButton1").Visible = True
Else
ToggleButton1.Caption = "Filter On"
ToggleButton1.BackColor = RGB(0, 255, 255)
'Filter ausschalten
If .AutoFilterMode = True Then .AutoFilterMode = False
.Shapes("CommandButton3").Visible = False
.Shapes("CommandButton1").Visible = False
End If
[A3].Select
ActiveWindow.ScrollRow = 3
End With
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Dropdownpfeile Autofilter
15.08.2010 16:32:18
Charly
Danke Franz,
hat mir sehr geholfen.
Erklärungen verstanden.
A3, A1000 oder A... is volkommen egal.
Schönen Sonntag noch Franz.
Gruss Charly
Ich geh jetzt noch'n Weissbier trinken...
A3 oder A3000 oder activecell ....
17.08.2010 11:57:31
Klaus
Moin,
wenn mit ein ToggleButton oder SpinButton oder sonstwas den Focus klaut, behelfe ich mir gerne mit einem extra-Sub für das Focusereignis:
Private Sub ToggleButton1_GotFocus()
ActiveCell.Activate
End Sub
Mit ist ActiveCell lieber als eine fixe Zelle - der Cursor bleibt einfach da wo er war, und gut ist! Bleibt zwar bei einem uneleganten SELECT bzw ACTIVATE, aber zumindest ist es nicht mehr in der eingentlichen Prozedur.
Grüße,
Klaus M.vdT.
Anzeige
Danke Klaus is auch ne Möglichkeit o.T.
18.08.2010 12:23:04
Charly
;
Anzeige
Anzeige

Infobox / Tutorial

Dropdownpfeile im Autofilter effizient nutzen


Schritt-für-Schritt-Anleitung

  1. Autofilter aktivieren:

    • Um den Autofilter zu aktivieren, kannst du den folgenden VBA-Code verwenden. Dieser filtert nur eine bestimmte Spalte (z.B. Spalte E) und blendet die Dropdownpfeile aus.
    Private Sub ToggleButton1_Click()
       Application.ScreenUpdating = False
       With ActiveSheet
           If ToggleButton1.Value = True Then
               ToggleButton1.Caption = "Filter Off"
               ToggleButton1.BackColor = RGB(255, 0, 255)
               If .AutoFilterMode = True Then .AutoFilterMode = False
               With .Range(.Cells(3, 5), .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 5))
                   .AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd, visibledropdown:=False
               End With
           Else
               ToggleButton1.Caption = "Filter On"
               ToggleButton1.BackColor = RGB(0, 255, 255)
               If .AutoFilterMode = True Then .AutoFilterMode = False
           End If
           [A3].Select
           ActiveWindow.ScrollRow = 3
       End With
       Application.ScreenUpdating = True
    End Sub
  2. Dropdownpfeile ausblenden:

    • Um die Dropdownpfeile auszublenden, stelle sicher, dass du das Argument visibledropdown:=False in deinem Autofilter-Befehl verwendest.

Häufige Fehler und Lösungen

  • Fehler: Dropdownpfeile verdecken Überschriften:

    • Lösung: Stelle sicher, dass du den Autofilter nur auf die benötigte Spalte anwendest, wie im obigen Beispiel gezeigt.
  • Fehler: Symbole in der Symbolleiste nicht aktiv:

    • Lösung: Verwende ActiveCell.Activate, um den Fokus zurückzugeben, oder wähle eine Zelle wie A3, um die Menüs zu aktivieren.

Alternative Methoden

  • VBA für den Autofilter:

    • Ein alternativer Ansatz ist, ein zusätzliches Sub für das Fokusereignis zu erstellen, um den Fokus der aktiven Zelle zu behalten:
    Private Sub ToggleButton1_GotFocus()
      ActiveCell.Activate
    End Sub
  • Excel-Funktionen:

    • Du kannst auch den Excel-Filter manuell über die Datenregisterkarte aktivieren, jedoch ist die VBA-Methode für wiederholte Aufgaben effizienter.

Praktische Beispiele

  • Beispiel 1: Aktiviere den Autofilter nur für Spalte E und blende die Dropdownpfeile aus.
  • Beispiel 2: Verwende einen ToggleButton zur Steuerung des Filters, ohne dass der Dropdownpfeil sichtbar ist.

Tipps für Profis

  • Verwendung von Shortcuts: Nutze Excel-Shortcuts, um deine Effizienz zu steigern. Zum Beispiel: ALT + D + F + F aktiviert den Autofilter.
  • VBA optimieren: Reduziere die Anzahl der Select und Activate Methoden in deinem Code, um die Leistung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die Dropdownpfeile im Autofilter ausblenden?
Verwende in deinem VBA-Code das Argument visibledropdown:=False im Autofilter-Befehl.

2. Warum muss ich den Autofilter mit demselben Code ein- und ausschalten?
Der Code prüft, ob der Autofilter aktiv ist und schaltet ihn nur aus, wenn er aktiv ist. Andernfalls bleibt er inaktiv.

3. Gibt es eine Möglichkeit, den Fokus auf die aktive Zelle zurückzugeben?
Ja, du kannst ein zusätzliches Sub verwenden, das die aktive Zelle aktiviert, wie im Beispiel oben gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige