Note: The other languages of the website are Google-translated. Back to English

Wie kann ich die automatische Filterung automatisch erneut anwenden, wenn sich Daten in Excel ändern?

Wenn Sie in Excel die Filter Funktion zum Filtern von Daten, das Filterergebnis wird nicht automatisch mit den Datenänderungen in Ihren gefilterten Daten geändert. Wenn ich zum Beispiel jetzt alle Äpfel aus den Daten filtere, ändere ich jetzt eine der gefilterten Daten in BBBBBB, aber das Ergebnis wird nicht geändert, ebenso wie der folgende Screenshot. In diesem Artikel werde ich darüber sprechen, wie die automatische Filterung automatisch angewendet wird, wenn sich Daten in Excel ändern.

doc auot Aktualisierungsfilter 1

Automatische Filterung automatisch erneut anwenden, wenn sich Daten mit VBA-Code ändern


Pfeil blau rechte Blase Automatische Filterung automatisch erneut anwenden, wenn sich Daten mit VBA-Code ändern

Normalerweise können Sie die Filterdaten aktualisieren, indem Sie manuell auf die Funktion "Neu anwenden" klicken. Hier werde ich jedoch einen VBA-Code einführen, mit dem Sie die Filterdaten automatisch aktualisieren können, wenn sich Daten ändern. Gehen Sie dazu wie folgt vor:

1. Wechseln Sie zu dem Arbeitsblatt, das Sie automatisch aktualisieren möchten, wenn sich Daten ändern.

2. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt und wählen Sie Code anzeigen aus dem Kontextmenü in der herausgesprungenen Microsoft Visual Basic für Applikationen Fenster, bitte kopieren Sie den folgenden Code und fügen Sie ihn in das leere Modulfenster ein, siehe Screenshot:

VBA-Code: Filter automatisch erneut anwenden, wenn sich Daten ändern:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

doc auot Aktualisierungsfilter 2

Hinweis: Im obigen Code, Blatt 3 Ist der Name des Blattes mit dem von Ihnen verwendeten automatischen Filter, ändern Sie es bitte nach Ihren Wünschen.

3. Speichern und schließen Sie dann dieses Codefenster, wenn Sie die gefilterten Daten ändern Filter Die Funktion wird sofort automatisch aktualisiert, siehe Screenshot:

doc auot Aktualisierungsfilter 3


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (36)
Bewertet 5 aus 5 · 1 Bewertungen
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, wie kann ich das alles in Google Finanzen verwenden? Tks
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Schön .. wirklich ich brauche es
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich möchte, dass eine Änderung auf einem Blatt dazu führt, dass mehrere andere Blätter automatisch gefiltert werden. Wie ändere ich diesen Code? Bsp.: BlattA wird geändert, was dazu führt, dass Blatt1, Blatt2 und Blatt3 ihren Autofilter anwenden. Vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich mache das für eine Front in Blatt, wo die Zelle auf = Blatt1! E6 gesetzt ist. Es wird keinen Filter anwenden, wenn es sich ändert. Wenn ich die Nummer auf der Rückseite ändere, wird die Vorderseite angepasst, aber nicht gefiltert. Wenn Sie die Formel anpassen, um die Kriterien zu filtern, wird sie erneut angewendet. Was kann ich tun?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Verwenden Sie diese
Private Sub Work_Change(ByVal Ziel als Bereich)
Activesheet.AutoFilter.ApplyFilter
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich kann das überhaupt nicht für mich zum Laufen bringen. Ich versuche, aus einem Stammblatt zu nehmen und es nur die Jobs zu nehmen, die für bestimmte Projektmanager gelten, auf jeder Registerkarte, die mit ihren Namen ist. Ich möchte auch, dass es automatisch aktualisiert wird, wenn ich Änderungen vornehme.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dieser Befehl tut nichts. total ausprobieren aber nutzlos.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Funktioniert super und erspart mir viel Zeit und Fummelei.. Wirklich toller Tipp.. Vielen Dank für eure Hilfe
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Diese Lösung funktioniert einwandfrei. Danke, dass du es aufgeschrieben hast! Wenn jemand Probleme hat, gibt es ein paar Dinge zu beachten.

Zuerst wird das Worksheet_Change-Ereignis blattweise aufgerufen. Das bedeutet, wenn Sie mehrere Blätter haben, deren Filter aktualisiert werden müssen, müssen Sie auf alle diese Ereignisse reagieren. Eine Subroutine Worksheet_Change für jedes Arbeitsblatt, nicht eine Subroutine für die gesamte Arbeitsmappe (eine Ausnahme – siehe Hinweis unten).

Zweitens, und als Fortsetzung des ersten, muss der Code in das Codemodul platziert werden, das für das zu überwachende Arbeitsblatt spezifisch ist. Es ist einfach, Codemodule (versehentlich) zu wechseln, sobald Sie in den VB-Editor gelangen, daher muss darauf geachtet werden, dass es spezifisch für das Blatt platziert wird, das Sie auf Datenänderungen überwachen möchten.

Drittens ist dies unbestätigt, aber möglicherweise ein Fehlerpunkt. Das Beispiel verwendet die Blattnamen „Sheet1“, „Sheet2“ usw. Wenn Sie die Blätter umbenannt haben, müssen Sie möglicherweise den Code aktualisieren. Beachten Sie, dass Sheet7 im Beispiel den Namen "dfdf" erhalten hat. Wenn Sie den Filter dort aktualisieren möchten, müssen Sie Folgendes verwenden:
Sheets("dfdf").AutoFilter.ApplyFilter
nicht;
Sheets("Sheet7").AutoFilter.ApplyFilter

Es könnte gut sein, den Artikel zu aktualisieren, einschließlich eines Beispiels mit einem umbenannten Blatt.


Wenn Sie schließlich ein Blatt auf Datenänderungen überwachen, aber Filter auf mehreren Blättern aktualisieren möchten, benötigen Sie nur eine Unterroutine, die in das Codemodul des Arbeitsblatts eingefügt wird, das Sie überwachen. Der Code sieht etwa so aus;

# (Code muss in das Arbeitsblatt eingefügt werden, um auf Datenänderungen überwacht zu werden)
Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
Sheets("Sheet1").AutoFilter.ApplyFilter
Sheets("Sheet2").AutoFilter.ApplyFilter
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Mike,
Danke für deine ausführliche Erklärung.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Super Erklärung, danke.

Aber wie löse ich Sheets("Sheet3").AutoFilter.ApplyFilter aus, wenn ein neues Blatt erstellt wird?
Da ich den von Ihnen erwähnten Code nicht auf ein Blatt schreiben kann, das noch nicht existiert
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Grosses Dankeschön!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
funktioniert wie ein Weltmeister und so einfach. Danke sehr!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Das scheint großartig zu sein. Können Sie mir bitte sagen, wie ich dasselbe für Sort anstelle von Filter mache?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Chris,
Möglicherweise kann der folgende Artikel Ihr Problem lösen, bitte lesen Sie:

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

Versuch es bitte!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, das funktioniert super, allerdings nur bei manueller Änderung der Daten in der Tabelle.

Ich habe eine gefilterte Tabelle im Stil "Top Ten / Leaderboard", die aus der Dateneingabe auf einem separaten Arbeitsblatt gefüllt wird (eigentlich durchlaufen die Daten 3 Arbeitsblätter, bevor sie in die Tabelle gelangen). Wenn die Daten im Dateneingabe-Arbeitsblatt geändert werden, werden die Tabellenzahlen der Rangliste aktualisiert, der Filter wird jedoch nicht automatisch aktualisiert.
Irgendwelche Ideen, wie man das macht?
Herzlichen Dank.
Alex
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich habe sie das gleiche Problem. Kann uns jemand weiterhelfen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich habe das gleiche Problem. Ich versuche, Blatt 2 automatisch zu filtern, das Daten aus Blatt 1 enthält. Es funktioniert nur, wenn ich die Daten auf Blatt 2 ändere, nicht auf Blatt 1.
Irgendwelche Gedanken darüber, warum dies nicht funktioniert und wie es behoben werden kann?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, das scheint großartig zu funktionieren, aber ich habe Probleme, wenn es mehr als einen Filter auf demselben Arbeitsblatt (Registerkarte) gibt. Ich habe den Zellbereich in eine Tabelle konvertiert, um separate und mehrere Filter innerhalb desselben Arbeitsblatts zu ermöglichen. Dieses Beispiel scheint nur eine der Tabellen/Filter zu aktualisieren. Irgendwelche Vorschläge, wie man ALLE Tabellen/Filter in einem Arbeitsblatt aktualisiert?

Vielen Dank,

Tom
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Tom,
Der Code in diesem Artikel funktioniert gut für mehrere Tabellen in einem Arbeitsblatt, Sie müssen nur die Eingabetaste drücken, nachdem Sie die Daten geändert haben, anstatt auf eine andere Zelle zu klicken.
Versuch es bitte.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Terima Kasih

sangat membantu
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dies funktioniert nicht mit Filter basierend auf Listenauswahl https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Genial und einfach zu machen. Vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Dieser Code funktioniert super, vielen Dank.

Ich habe jedoch ein kleines Problem damit - wenn ich Werte in einer Zelle ändere, die nicht Teil der Tabelle ist, wird mir ein Laufzeitfehler angezeigt, der besagt:

"Laufzeitfehler '91':

Objektvariable oder With-Blockvariable nicht eingerichtet"


Ich habe Optionen zum Debuggen oder Beenden, die Option zum Fortfahren ist ausgegraut. Ich kann auf "Ende" klicken und der Code funktioniert immer noch, aber es ist sehr nervig, sich nach jeder Änderung mit diesem Popup-Fenster herumschlagen zu müssen.

Hat jemand ähnliche Erfahrungen oder einen Tipp wie ich das sortieren kann?

Vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo David,
Um Ihr Problem zu lösen, können Sie den folgenden Code anwenden:

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Bitte versuchen Sie es, ich hoffe, es kann Ihnen helfen!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Skyyang,


Ich habe Ihre Lösung implementiert und sie ist tatsächlich behoben.

Thanks a lot!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich hatte das gleiche Problem, habe den neuen Code eingefügt und den Namen des Blattes geändert, aber dann passiert nichts, der Filter wird nicht aktualisiert
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Auch hier das gleiche Problem, gibt es eine aktuelle Lösung?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bekomme das überhaupt nicht auf Office 365 zum Laufen
irgendwelche Vorschläge
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, vielen Dank für die Hilfe. Irgendetwas funktioniert bei mir nicht richtig. Hier ist die Geschichte.

Sheet1 hat variable Daten. Sheet3 hat statische Daten und Filter. Die Filterkriterien für "Sheet3" stammen aus Sheet1. Sheet1 enthält Daten, die aus gefilterten Ergebnissen auf Sheet3 stammen.

Sheet3 hat Code:

Private Sub Worksheet_SelectionChange (ByVal-Ziel als Bereich)
Range("A1:U14").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("A22:U23"), CopyToRange:=Range("A25:U26"), Unique:=False
End Sub

Es funktioniert großartig, wenn ich etwas auf Sheet3 mache. Keine Probleme. Danke!

Zuerst hatte ich Code auf Sheet1:

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Was zu dem Fehler „Runtime error 91, Object Variable or With Block not Set“ führte.

Ich habe den Code basierend auf Kommentaren wie folgt geändert:

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Jetzt bekomme ich keinen Fehler, aber die Daten auf Sheet3 und damit Sheet1 ändern sich nicht. Mit anderen Worten, das Ereignis des Anwendens des Filters auf Sheet3 tritt nicht auf, wenn ich eine Änderung an Sheet1 vornehme. Es spielt keine Rolle, ob ich treffe oder klicken Sie auf eine andere Zelle, nachdem Sie die Tabelle3-Filterkriterienzelle geändert haben, die auf Tabelle1 eingestellt ist.

Abgesehen davon erwarte ich, dass ich, wenn ich mehrere Zellen auf Sheet1 haben wollte, die zusätzlich zu Sheet4 Filter auf Sheets 5 und 3 verursachten, den Code auf Sheet 1 zum Lesen benötigen würde:

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
Sheets("Sheet5").AutoFilter.ApplyFilter
End Sub

Nochmals vielen Dank!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Das ist ein tolles Stück Code, danke. Das einzige Problem, das ich habe, ist, dass ich ein Dropdown-Menü auf einem separaten Diagrammblatt verwende. Wenn ich den Wert in der Zelle, die dem Dropdown zugeordnet ist, manuell ändere, funktioniert es. Aber wenn ich versuche, nur das Dropdown-Menü zu verwenden, wird es nicht aktualisiert. Irgendwelche Gedanken?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ich habe tatsächlich Daten aus einer anderen Excel-Datei, die in ein Excelsheet mit dem Namen "Database" importiert wurde. Dann importiere ich diese Daten in dieselbe Excel-Datei, aber in ein anderes ExcelSheet "Übersicht". Ich möchte, wenn sich die Daten in der Originalquelle ändern, dass der Filter im Blatt "Übersicht" gilt. Vielen Dank im Voraus für denjenigen, der mir helfen kann :). PS kann VBA im ersten Excelsheet nicht verwenden
Es sind noch keine Kommentare vorhanden
Mehr laden
Hinterlassen Sie Ihre Kommentare
Als Gast posten
×
Bewerte diese Nachricht:
0   Figuren
Vorgeschlagene Standorte

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL