Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Autofilter aktualisieren

Autofilter aktualisieren
08.09.2015 13:12:15
Brandt
Hallo Zusammen
Hätte eine Frage zum Autofilter
Möchte auf Tabellenblatt "Tabelle1" in die Zelle A1 B1 C1.. Werte eingeben, die ich in einem anderen Tabellenblatt "Tabelle2" in Zelle A1 B1 C1 zur Berechnung benötige.
In Tabelle 2 werden die Werte aus den Zellen in einer unteren Tabelle mit Autofilter verarbeitet.
Frage: Wie kann ich den Autofilter in Tabelle 2 z.B durch die Selection change Methode automatisch aktualisieren wenn ich in Tabelle1 die Werte ändere?

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter aktualisieren
08.09.2015 14:06:28
Beverly
Hi,
dazu kannst du das Change-Ereignis des 1. Tabellenblattes verwenden.
Das Aktualisieren des Autofilters kannst du mit dem Makrorekorder aufzeichnen.
Falls dir bei deinen VBA-Kenntnissen diese Aussagen nicht auszeichen, müsstest du deine Arbeitsmappe hochladen, um genauer darauf eingehen zu können.


Anzeige
AW: Autofilter aktualisieren
08.09.2015 14:28:15
fcs
Hallo Brandt,
Es ist einfacher, das Worksheet_Change_Ereignis in Tabelle1 auszuwerten.
Gruß
Franz
'Code unter dem Modul von Tabelle1
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wksF As Worksheet
Set wksF = ActiveWorkbook.Worksheets("Tabelle2")
Select Case Target.Address(False, False, xlA1)
Case "A1", "B1", "C1"
'Auto filter in Tabelle2 aktualisieren
With wksF
If .FilterMode = True Then .ShowAllData
With .AutoFilter.Range
If IsEmpty(Me.Range("A1")) Then
.AutoFilter Field:=1
Else
.AutoFilter Field:=1, Criteria1:=Me.Range("A1").Value
End If
If IsEmpty(Me.Range("B1")) Then
.AutoFilter Field:=2
Else
.AutoFilter Field:=2, Criteria1:=Me.Range("B1").Value
End If
If IsEmpty(Me.Range("C1")) Then
.AutoFilter Field:=3
Else
.AutoFilter Field:=3, Criteria1:=Me.Range("C1").Value
End If
End With
End With
Case Else
End Select
End Sub
oder wenn der Filter in einer Tabelle/Listobject gesetzut werden soll
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wksF As Worksheet
Set wksF = ActiveWorkbook.Worksheets("Tabelle2")
Select Case Target.Address(False, False, xlA1)
Case "A1", "B1", "C1"
'Auto Filter in Tabelle/Listobject aktualisieren
With wksF
With .ListObjects(1)
If .AutoFilter.FilterMode = True Then .AutoFilter.ShowAllData
With .AutoFilter.Range
If IsEmpty(Me.Range("A1")) Then
.AutoFilter Field:=1
Else
.AutoFilter Field:=1, Criteria1:=Me.Range("A1").Value
End If
If IsEmpty(Me.Range("B1")) Then
.AutoFilter Field:=2
Else
.AutoFilter Field:=2, Criteria1:=Me.Range("B1").Value
End If
If IsEmpty(Me.Range("C1")) Then
.AutoFilter Field:=3
Else
.AutoFilter Field:=3, Criteria1:=Me.Range("C1").Value
End If
End With
End With
End With
Case Else
End Select
End Sub

Anzeige
AW: Autofilter aktualisieren
08.09.2015 17:07:59
Brandt
Also erstmal Respekt für den Quellcode aber funzt bei mir leider nicht.
Momentan aktualisiere ich den Autofilter in dem ich auf das Tabellenblatt2 gehe und eine Zelle ankliche.
Selection.change
ActiveSheet.Autofilter.ApplyFilter
Könnte man das auch folgendermassen ralisieren
Ist nur eine Idee
'In Tabelle1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Wenn der Wert in der Zelle A1,B1,C1 sich ändert dannn aktualisiere Tabelle 2 Autofilter
If Target.Address = "$A$1, $A$2",$A$3 " Then
'Aktualisiere den Autofilter auf Tabelle 2 z.B mit Befehl im Hintergrund .Autofilter.ApplyFilter
Hier benötige ich Eure Unterstützung

Anzeige
AW: Autofilter aktualisieren
08.09.2015 18:49:09
fcs
Hallo Brandt,
da gab es ein kleines Mißverständnis.
Wenn es "nur" um die Aktualisierung des Filters in Tabelle2 geht, dann vereinfachen sich die Ereignismakros unter Tabelle1 wie folgt:
Gruß
Franz
'Code unter dem Modul von Tabelle1
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(False, False, xlA1)
Case "A1", "B1", "C1"
'Auto filter in Tabelle2 aktualisieren
ActiveWorkbook.Worksheets("Tabelle2").AutoFilter.ApplyFilter
Case Else
End Select
End Sub
'oder bei einem Listobject
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(False, False, xlA1)
Case "A1", "B1", "C1"
'Auto Filter in Tabelle/Listobject aktualisieren
ActiveWorkbook.Worksheets("Tabelle2").ListObjects(1).AutoFilter.ApplyFilter
Case Else
End Select
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Autofilter automatisch aktualisieren in Excel


Schritt-für-Schritt-Anleitung

Um den Autofilter auf einem anderen Tabellenblatt automatisch zu aktualisieren, wenn sich die Werte in "Tabelle1" ändern, kannst du das Worksheet_Change-Ereignis verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei und gehe zu "Tabelle1".

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Doppelklicke auf "Tabelle1" im Projekt-Explorer.

  4. Füge folgenden Code in das Modul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim wksF As Worksheet
       Set wksF = ActiveWorkbook.Worksheets("Tabelle2")
    
       Select Case Target.Address(False, False, xlA1)
           Case "A1", "B1", "C1"
               ' Auto filter in Tabelle2 aktualisieren
               With wksF
                   If .FilterMode = True Then .ShowAllData
                   With .AutoFilter.Range
                       If IsEmpty(Me.Range("A1")) Then
                           .AutoFilter Field:=1
                       Else
                           .AutoFilter Field:=1, Criteria1:=Me.Range("A1").Value
                       End If
                       If IsEmpty(Me.Range("B1")) Then
                           .AutoFilter Field:=2
                       Else
                           .AutoFilter Field:=2, Criteria1:=Me.Range("B1").Value
                       End If
                       If IsEmpty(Me.Range("C1")) Then
                           .AutoFilter Field:=3
                       Else
                           .AutoFilter Field:=3, Criteria1:=Me.Range("C1").Value
                       End If
                   End With
               End With
           Case Else
       End Select
    End Sub
  5. Schließe den VBA-Editor und teste die Funktion, indem du Werte in A1, B1 oder C1 in "Tabelle1" änderst.


Häufige Fehler und Lösungen

  • Fehler: Der Autofilter wird nicht aktualisiert.

    • Lösung: Stelle sicher, dass du das richtige Blatt angesprochen hast. Überprüfe, ob der Name des Blattes korrekt ist und keine Leerzeichen enthält.
  • Fehler: Der Filter bleibt trotz Änderungen in "Tabelle1" aktiv.

    • Lösung: Achte darauf, dass der Code im richtigen Modul (Tabelle1) eingefügt ist. Es muss das Worksheet_Change-Ereignis sein.

Alternative Methoden

Falls du eine andere Methode ausprobieren möchtest, kannst du auch das Worksheet_SelectionChange-Ereignis verwenden. Hier ein Beispiel:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A1:C1")) Is Nothing Then
        ActiveSheet.AutoFilter.ApplyFilter
    End If
End Sub

Diese Methode aktualisiert den Filter in "Tabelle2" jedes Mal, wenn du eine Zelle in "Tabelle1" auswählst.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung des Autofilters:

  • Beispiel 1: Wenn der Wert in A1 auf „Äpfel“ geändert wird, wird nur der Datensatz angezeigt, der Äpfel entspricht.

  • Beispiel 2: Wenn die Zelle B1 leer ist, bleibt der Filter in der zweiten Spalte unverändert, sodass alle Werte angezeigt werden.


Tipps für Profis

  • Verwende Tastenkombinationen wie ALT + D + F + F, um den Autofilter schnell zu aktivieren oder zu deaktivieren.
  • Nutze das activesheet.autofilter-Objekt, um den aktuellen Filterstatus zu überprüfen, bevor du Änderungen vornimmst.
  • Stelle sicher, dass deine Daten immer in einer Tabelle/ListObject organisiert sind, um die Filterfunktionen optimal zu nutzen.

FAQ: Häufige Fragen

1. Wie kann ich den Autofilter in einer Tabelle automatisch aktualisieren?
Du kannst das Worksheet_Change-Ereignis verwenden, um den Autofilter automatisch zu aktualisieren, wenn sich die Zellen ändern.

2. Gibt es eine Tastenkombination, um den Filter zu aktualisieren?
Ja, du kannst ALT + D + F + F verwenden, um den Filter in Excel zu aktualisieren.

3. Wie kann ich den Autofilter für mehrere Spalten einstellen?
Du kannst mehrere If-Bedingungen im Worksheet_Change-Ereignis verwenden, um die Filter für jede relevante Spalte einzustellen.

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