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

Forumthread: Makro automatisch ausführen nach Filtern

Makro automatisch ausführen nach Filtern
17.08.2018 13:49:57
Fabes
Hallo ich hoffe ihr könnt mir weiterhelfen.
Ich möchte ein Makro schreiben, so dass nachdem ich einen manuellen Filter angewendet habe, ein zweites von mir bereits geschriebenes Makro ausgeführt wird.
Wie muss der Code hierfür aussehen?
Vielen Dank schon einmal.
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro automatisch ausführen nach Filtern
17.08.2018 16:29:50
ChrisL
Hi
Ein eigenes Event wie Autofilter_Change gibt es nicht.
Im folgenden Artikel wird empfohlen eine Pseudo-Formel mit =TEILERGEBNIS() (Subtotal) einzusetzen und das Calculate-Ereignis zu verwenden.
https://www.experts-exchange.com/articles/2773/Trapping-a-change-to-a-filtered-list-with-VBA.html
Private Sub Worksheet_Calculate()
Call Makro
End Sub
cu
Chris
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Makro nach Filtern automatisch ausführen in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro automatisch auszuführen, nachdem ein Filter in Excel angewendet wurde, kannst Du das Worksheet_Calculate-Ereignis verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Wähle im Projekt-Explorer das Arbeitsblatt aus, auf dem Du das Makro ausführen möchtest.

  3. Füge den folgenden Code in das Code-Fenster ein:

    Private Sub Worksheet_Calculate()
        Call DeinMakroName
    End Sub

    Ersetze DeinMakroName mit dem Namen des Makros, das Du ausführen möchtest.

  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Wende einen Filter auf Deine Daten an. Das Makro wird automatisch ausgeführt, wenn die Berechnung des Arbeitsblatts erfolgt.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Berechnungseinstellungen auf "Automatisch" gesetzt sind. Gehe zu Formeln > Berechnungsoptionen und wähle Automatisch.
  • Fehler: Das Makro führt nicht die gewünschten Aktionen aus.

    • Lösung: Überprüfe den Namen des Makros in Deinem Code. Es muss exakt mit dem Namen des bestehenden Makros übereinstimmen.

Alternative Methoden

Wenn Du eine andere Methode als das Worksheet_Calculate-Ereignis ausprobieren möchtest, kannst Du auch die Worksheet_Change-Ereignisprozedur verwenden. Hier ein Beispiel:

  1. Öffne den VBA-Editor (ALT + F11).
  2. Füge den folgenden Code in das Arbeitsblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
            Call DeinMakroName
        End If
    End Sub

    Hierbei wird das Makro ausgeführt, wenn sich der Wert in Zelle A1 ändert. Du kannst die Zelle nach Bedarf anpassen.


Praktische Beispiele

Hier ist ein praktisches Beispiel für ein Makro, das die Anzahl der sichtbaren Zeilen nach dem Filtern zählt:

Sub ZaehleSichtbareZeilen()
    Dim SichtbareZeilen As Long
    SichtbareZeilen = Application.WorksheetFunction.Subtotal(103, Range("A:A")) ' Zählt sichtbare Zeilen in Spalte A
    MsgBox "Anzahl sichtbarer Zeilen: " & SichtbareZeilen
End Sub

Füge dieses Makro in die Worksheet_Calculate-Ereignisprozedur ein, um die Anzahl sichtbarer Zeilen nach dem Anwenden des Filters anzuzeigen.


Tipps für Profis

  • Nutze die Application.ScreenUpdating-Eigenschaft, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Das beschleunigt die Ausführung:

    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
  • Teste Dein Makro zunächst in einer Kopie Deiner Excel-Datei, um unerwartete Ergebnisse zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro nur bei bestimmten Filtern ausgeführt wird?
Du kannst Bedingungen im Worksheet_Calculate-Ereignis hinzufügen, die prüfen, ob ein bestimmter Filter aktiv ist.

2. Funktioniert das auch in Excel Online?
Leider unterstützt Excel Online keine VBA-Makros. Dieses Verfahren ist nur in den Desktop-Versionen von Excel verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige