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

Spezialfilter mit Makro

Forumthread: Spezialfilter mit Makro

Spezialfilter mit Makro
01.04.2016 14:10:10
Farbod
Hallo,
ich habe folgendes Problem:
Ich habe eine Datenbank, bei der ich eine Filterfunktion einführen möchte. Das heißt ich möchte nach ganz bestimmte Kriterien suchen (filtern nach Land, Werk,Gebäude etc.) und das ganze soll dynamisch sein, weil weitere Informationen dazu kommen werden.
Dazu möchte ich mit auf der Layout "Kriterien" meine Filterkriterien angeben und durch klicken auf einem BUTTON(Schaltfläche) soll das Ergebnis auf der Layout "Ergebnisse" erscheinen und das für beliebige Konstellationen. Ich weiß, dass das mit Spezialfilter mit Makros machbar ist. Habe auch einige Versuche gestartet, aber da ich absoluter Anfänger in Excel bin, bin ich gescheitert. Ich wäre sehr dankbar, wenn mir jemand helfen könnte und eventuell kurz beschreiben kann, wie er das Problem gelöst hat.
Ich bedanke mich im Voraus
Farbod
https://www.herber.de/bbs/user/104711.xlsm

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spezialfilter mit Makro
01.04.2016 15:40:15
Steve
Hallo Farbod,
das lässt sich sehr einfach lösen:
Autofilter zurücksetzen (ich entferne einfach den alten) und für jede Zelle in "Kriterien" Zeile 2 in der ein Wert steht (Konstante) soll er einen Filter in die entsprechende Spalte der Datenbank setzen. Dies setzt voraus dass deine Überschriften in Kriterien in den selben Spalten liegen wie in deiner Datenbank, aber Copy/Paste der Kopfzeile sollte von Hand ja kein Problem sein.
lg Steve
Sub Filtern()
Dim rZelle As Range
'Tabelle2 = "Datenbank"
'Tabelle4 = "Kriterien"
'Tabelle5 = "Ergebnisse"
With Tabelle2
If .AutoFilterMode Then .Cells.AutoFilter
For Each rZelle In Tabelle4.Rows(2).SpecialCells(xlCellTypeConstants)
.UsedRange.AutoFilter Field:=rZelle.Column, Criteria1:=rZelle
Next rZelle
.Cells.Copy Tabelle5.Cells
End With
End Sub

Anzeige
AW: Spezialfilter mit Makro
01.04.2016 15:47:50
Steve
Achja,
damit der Filter in deiner Datenbank am Ende nicht gefiltert bleibt kannst du folgendes ändern:
Sub Filtern()
Dim rZelle As Range
'Tabelle2 = "Datenbank"
'Tabelle4 = "Kriterien"
'Tabelle5 = "Ergebnisse"
With Tabelle2
If .AutoFilterMode Then .Cells.AutoFilter
For Each rZelle In Tabelle4.Rows(2).SpecialCells(xlCellTypeConstants)
.UsedRange.AutoFilter Field:=rZelle.Column, Criteria1:=rZelle
Next rZelle
.Cells.Copy Tabelle5.Cells
.Cells.AutoFilter
.UsedRange.AutoFilter
End With
End Sub
Damit wird der Filter einfach zurückgesetzt.
lg Steve

Anzeige
AW: Spezialfilter mit Makro
01.04.2016 16:05:31
Farbod
Hallo Steve,
danke für die Hilfe. Ich habe deinen Code verwendet aber leider funktioiert es nicht. Ich wäre dir sehr dankbar, wenn du das in dem angehängten Exceldatei umsetzen und mir das schicken könntest. Wahrscheinlich mache ich wieder mal einen absoluten Anfängerfehler. Danke im Voraus
LG Farbod

Anzeige
AW: Spezialfilter mit Makro
01.04.2016 16:24:04
Steve
Hallo Farbod,
ok dann mal ausführlich:
-VBA-Editor öffnen (Alt+F11)
-Projekt-Explorer öffnen falls noch nicht offen (Strg+R)
-Rechtsklick in den Explorer - Einfügen - Modul
-Modul mit Doppelklick drauf öffnen
-in das Modul den Code kopieren (Makronamen merken)
-VBA-Editor zumachen
-im Excel in der Registerkarte "Entwicklertools" (wenn nicht vorhanden unter Optionen einblenden) einen Button einfügen oder in der Registerkarte "Einfügen" eine Form oder Bild einfügen welches du als Button benutzen willst
-Rechtsklick auf den Button/Form/Bild und Makro zuweisen wählen
-Makro aus der Liste wählen, übernehmen
Da kann eigentlich nichts schief gehen. Trotzdem hier nochmal deine Datei:
https://www.herber.de/bbs/user/104716.xlsm
lg Steve

Anzeige
AW: Spezialfilter mit Makro
04.04.2016 08:35:55
Farbod
danke dir Steve. Es funktioniert
lg Farbod
;
Anzeige

Infobox / Tutorial

Spezialfilter mit Makro in Excel


Schritt-für-Schritt-Anleitung

Um einen Spezialfilter in Excel mit einem Makro zu erstellen, befolge diese Schritte:

  1. VBA-Editor öffnen: Drücke Alt + F11, um den VBA-Editor zu starten.

  2. Projekt-Explorer anzeigen: Drücke Strg + R, um den Projekt-Explorer zu öffnen.

  3. Modul einfügen: Rechtsklicke im Projekt-Explorer, wähle „Einfügen“ und dann „Modul“.

  4. Makro-Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Filtern()
       Dim rZelle As Range
       'Tabelle2 = "Datenbank"
       'Tabelle4 = "Kriterien"
       'Tabelle5 = "Ergebnisse"
       With Tabelle2
           If .AutoFilterMode Then .Cells.AutoFilter
           For Each rZelle In Tabelle4.Rows(2).SpecialCells(xlCellTypeConstants)
               .UsedRange.AutoFilter Field:=rZelle.Column, Criteria1:=rZelle
           Next rZelle
           .Cells.Copy Tabelle5.Cells
           .Cells.AutoFilter
       End With
    End Sub
  5. Makronamen merken: Notiere dir den Namen des Makros.

  6. Button erstellen: Im Excel-Fenster gehe zu „Entwicklertools“ und füge einen Button hinzu. Wenn die Registerkarte nicht sichtbar ist, aktiviere sie in den Optionen.

  7. Makro zuweisen: Rechtsklicke auf den Button, wähle „Makro zuweisen“ und wähle dein zuvor erstelltes Makro aus.

Jetzt kannst du auf den Button klicken und der Spezialfilter wird angewendet.


Häufige Fehler und Lösungen

  • Makro funktioniert nicht: Stelle sicher, dass deine Spaltenüberschriften in den „Kriterien“ mit denen in der „Datenbank“ übereinstimmen.
  • Fehlermeldung beim Ausführen des Makros: Überprüfe, ob der angegebene Bereich korrekt ist und ob die notwendigen Daten vorhanden sind.
  • Filter bleibt aktiv: Falls der Filter nicht zurückgesetzt wird, füge die Zeile .Cells.AutoFilter nach dem Kopieren der Daten hinzu.

Alternative Methoden

Wenn du keine Makros verwenden möchtest, kannst du den Excel Filter erweitert nutzen:

  1. Markiere deine Daten.
  2. Gehe zu „Daten“ > „Filter“ > „Erweiterter Filter“.
  3. Wähle den Bereich für die Kriterien aus und lege fest, ob du die Ergebnisse in die gleiche oder in einen anderen Bereich kopieren möchtest.

Diese Methode ist einfacher, erfordert jedoch manuelle Anpassungen, wenn sich die Daten ändern.


Praktische Beispiele

Angenommen, du hast eine Datenbank mit Verkaufsdaten (Produkte, Länder, Verkaufszahlen) und möchtest nach bestimmten Kriterien filtern:

  1. Erstelle eine „Kriterien“-Tabelle mit den gewünschten Filterkriterien (z.B. Land = „Deutschland“).
  2. Füge den oben genannten Makro-Code in dein Excel-Dokument ein.
  3. Klicke auf den Button, um die gefilterten Ergebnisse auf dem Arbeitsblatt „Ergebnisse“ anzuzeigen.

Tipps für Profis

  • Dynamische Kriterien: Du kannst die Kriterien dynamisch gestalten, indem du Datenüberprüfung für die Kriterienzellen verwendest, sodass Benutzer leicht auswählen können.
  • Anpassungen des Codes: Passe den Code an, um mehrere Kriterien in einer Zelle zu kombinieren (z.B. Land und Produkt).
  • Sichtbarkeit der Schaltfläche: Nutze Formate und Farben, um die Schaltfläche hervorzuheben und die Benutzeroberfläche zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich den Spezialfilter für mehrere Spalten gleichzeitig anwenden?
Um mehrere Spalten zu filtern, füge einfach weitere For Each-Schleifen für jede Spalte hinzu, die du filtern möchtest.

2. Funktioniert dieser Spezialfilter in Excel 2016?
Ja, der Code funktioniert in Excel 2016 und auch in neueren Versionen wie Excel 365.

3. Was mache ich, wenn ich keinen Zugriff auf den VBA-Editor habe?
Stelle sicher, dass die Makros in deinen Excel-Optionen aktiviert sind. Andernfalls kannst du auch die erweiterten Filter verwenden, die in Excel integriert sind.

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