Automatisches Aktualisieren gefilterter Daten in Excel
Microsoft Excel bietet eine leistungsstarke Filterfunktion, die insbesondere bei der Analyse großer Datenmengen von großem Nutzen ist. Sie stellt eine wertvolle Alternative dar, wenn die technischen Voraussetzungen für die Erstellung einer Datenbank nicht gegeben sind. Die Filterfunktion ist einfach zu bedienen und ermöglicht es, Daten aus einer Spalte ein- oder auszuschließen. Der Filter bezieht sich dabei auf die Werte in der entsprechenden Zeile und wirkt sich auf diese aus. Allerdings aktualisiert sich der Filter nicht automatisch. Änderungen an gefilterten Spalten, die entweder manuell oder durch Formeln erfolgen, erfordern ein erneutes Anwenden des Filters. Mit einem kurzen Code-Snippet lässt sich dieses Problem jedoch beheben und gefilterte Spalten können im Handumdrehen aktualisiert werden.
Um den Code nutzen zu können, müssen Makros aktiviert und die Excel-Datei als makrofähige Datei (.XLSM) gespeichert werden. Dies geschieht über Datei > Speichern unter, wobei im Dialogfenster „Speichern unter“ die Option „Excel-Arbeitsmappe mit Makrofunktion“ ausgewählt wird.
Als nächstes wählen Sie das Tabellenblatt aus, auf das die Filter angewendet wurden. Klicken Sie mit der rechten Maustaste auf das Blatt und wählen Sie im Kontextmenü „Code anzeigen“.
Ein Fenster von Microsoft Visual Basic öffnet sich mit der aktuellen Excel-Tabelle. Fügen Sie den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range) If Me.FilterMode = True Then With Application .EnableEvents = False .ScreenUpdating = False End With With ActiveWorkbook .CustomViews.Add ViewName:="Mine", RowColSettings:=True Me.AutoFilterMode = False .CustomViews("Mine").Show .CustomViews("Mine").Delete End With With Application .EnableEvents = True .ScreenUpdating = True End With End If End Sub
Speichern Sie die Datei. Sollten Sie die Datei noch nicht als Excel-Arbeitsmappe mit Makros gespeichert haben, werden Sie dazu aufgefordert. Die gespeicherte Datei wird als Kopie angelegt und überschreibt nicht die originale Datei.
Nachdem der Code implementiert wurde, werden die gefilterten Daten automatisch aktualisiert, sobald Sie eine Zelle in einer gefilterten Spalte verändern. Die Aktualisierung erfolgt gemäß den von Ihnen definierten Filterbedingungen. Der Code stammt von dem Stack Exchange-Nutzer Sorin.