online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon JoeDeeFoster vom 11.03.2021, 08:31 Options

Problem: Filter mit mehreren Toggle Buttons

Guten Morgen miteinander

gerne würde ich im Excel mit Hilfe von Toggle buttons folgendes machen:

Es sollen mehrere toggles nebeneinander aufgereiht angezeigt werden. Beim drücken des 1. Buttons soll ein Teil der Daten gefiltert werden. z.B. all diejenigen Teile aus einer Liste mit ca 10 verschiedenen Währungen, die in USD sind.
Als nächster Schritt soll ein zweiter Button aktiviert werden können, ohne das die Auswahl des 1. Buttons aufgehoben wird. z.B sollen zusätzlich noch alle EUR Teile angezeigt werden.
Schlussendlich sollen also von ca 5000 Datensätzen nur die gewählten Währungen angezeigt werden (ca 200 Datensätze).

Abschliessend will ich mit einem "New Search" Button wieder alle Daten anzeigen und automatisch alle gewählten Buttons wieder inaktiv erscheinen lassen.

Ich habe dieses Problem versucht mit Makros zu lösen: Es fügt eine neue Spalte ein, schreibt eine 1 falls EUR bzw USD und anschliessend mit Autofilter die Nichtleeren filtern. Das Problem: Erstens ist es unschön, da man die "Arbeit" des Makros sehen kann und zweitens ist es viel zu langsam. Meine Frage daher: Gibt es mit VBA Möglichkeiten zur Lösung dieses Problems?

Vielen Dank für eure Inputs!


Antwort schreiben

Antwort 1 von coros vom 11.03.2021, 09:40 Options

Hallo Dominik,

warum nimmst Du nicht den Autofilter von Excel? Darin hast Du verschiedene Filtermöglichkeiten und kannst auch einen benutzerdefinierten Filter anwenden. Eventuell hilft Dir das ja schon weiter.
Alles weitere wird schwierig, ohne den Aufbau Deiner Datei zu kennen bzw. eine Beispieldatei zu haben.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von JoeDeeFoster vom 11.03.2021, 11:52 Options

Hi Oliver,

hier ist der Code eines Buttons, mit dem man beispielsweise EUR rausfiltern lassen kann:

Private Sub ToggleButton9_Click()
If ToggleButton9 = True Then
    Range("B15:ag15").Select
    Range("X15").Activate
    Selection.AutoFilter
    Range("V16").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-19]=""EUR"",""EUR"","""")"
    Range("V16").Select
    Selection.AutoFill Destination:=Range("V16:V5000"), Type:=xlFillDefault
    Range("V16:V5000").Select
    Range("X16").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-2]="""",IF(RC[-1]="""","""",RC[-1]),RC[-2])"
    Range("X16").Select
    Selection.AutoFill Destination:=Range("X16:X5000"), Type:=xlFillDefault
    Range("X16:X5000").Select
    Selection.Copy
    Range("W16").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("X16:X5000").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("V16:V5000").Select
    Selection.ClearContents
    Range("B15:ag15").Select
    Range("X15").Activate
    Selection.AutoFilter
    Selection.AutoFilter Field:=22, Criteria1:="<>"
    Range("A1").Select
    Else
      Range("B15:ag15").Select
    Selection.AutoFilter
    Range("W16:W5000").Select
    Selection.Replace What:="EUR", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("B15:ag15").Select
    Range("X15").Activate
    Selection.AutoFilter
    Selection.AutoFilter Field:=22, Criteria1:="<>"
    Range("A1").Select
End If
End Sub


Den entsprechenden Code habe ich auch für andere Währungen verwendet. Somit ist es möglich, dass zwei Buttons gleichzeitig gedrückt werden können und beide Filter angezeigt werden. Aber leider ist diese Methode bei ca. 5000 Datensätzen ziehmlich langsam und er springt während den Berechnungen immer nach rechts zu den Spalten AG z.b. Weiter habe ich das Problem, dass wenn ich den Button wieder deaktiviere zeigt er mir keine Daten mehr an, was eigentlich ja auch Sinn macht. Wenn ich allerdings wieder alle Daten angezeigt haben will muss ich nach der Abwahl den Autofilter manuell entfernen und wieder setzen.

Beim Button für die "New Search" habe ich leider nichts wirklich verwendbares. Was er jedoch können sollte: Alle gedrückten Toggle Buttons deaktivieren und am Schluss alle Daten anzeigen.

Gruss
Joe

Antwort 3 von coros vom 11.03.2021, 13:41 Options

Hallo Joe,

zunächst einmal entferne die ganzen Select- und Activate -Anweisungen. Anstelle von z.B.

Range("B15:ag15").Select
    Range("X15").Activate
    Selection.AutoFilter

kann man auch

Range("B15:ag15.AutoFilter

schreiben. Das bringt schon mal eine ganze Menge Geschwindigkeit. Dann schreibe gleich am Anfang Deines Makros, also Leerzeile vor "If ToggleButton9 = True Then"
einfügen und darin dann die Zeile

Application.ScreenUpdating = False

eintragen. Das verhindert, dass Du Einzelschritte, sofern diese nach dem Löschen der ganzen Select- und Activate-Anweisungen überhaupt noch auftreten, siehst.

Um den Filter zu deaktivieren verwende die Zeile

If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False


Die schaltet den Autofilter aus, sofern dieser aktiviert ist.

Eventuell hilft Dir das ja schon mal weiter?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von coros vom 11.03.2021, 13:45 Options

Hallo,

ich nochmal. Uuups, da habe ich doch glatt in der Zeile

Range("B15:ag15.AutoFilter
die Klammer vergessen. Es muss natürlich

Range("B15:ag15).AutoFilter
heißen.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ähnliche Themen

Summewenn und Zählenwenn mit mehreren Kriterien mit Excel
JoeKe  17.05.2009 - 22593 Hits - 1 Antwort

Excel dropdown-Menü mit Filter
Davis  22.12.2007 - 163 Hits - 9 Antworten

Excel Filter für ähnliche Begriffe!
Hapolion  28.02.2008 - 19 Hits - 9 Antworten

Filter Status deutlicher darstellen
gimalevi1  26.07.2008 - 5 Hits - 1 Antwort

Makro: letzte Zeile finden, auch bei Filter
Michigan  04.09.2008 - 95 Hits - 2 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 20:06:00 2026