2017-01-29 16 views
0

Ich habe 5 verschiedene Blätter mit verschiedenen Datensätzen, aber ich möchte sie alle mit dem gleichen Datum zu filtern. Ich bin auf der Suche nach einer Möglichkeit, dies entweder mit VBA oder durch Advanced Filter (?) Zu automatisieren und ich bin dabei, einen Weg zu finden, wie.Excel-Tabelle - Kopieren Autofilter über mehrere Blätter

Worauf ich hinaus will ist, einen Filter auf ein "Master" Arbeitsblatt anzuwenden, und für die restlichen 4 Blätter automatisch den gleichen Datumsfilter wie den im Master-Arbeitsblatt anzuwenden. Wenn ich zum Beispiel alle Daten für November 2015 zeigen möchte, wenn ich dies in Blatt 1 filtere, werden die Blätter 2, 3 und 4 hoffentlich auch die Daten für November 2015 zeigen.

Ich habe online viele VBA-Lösungen gefunden, die die Filterkriterien innerhalb der Codierung angeben, aber die Kriterien ändern sich je nach den Anforderungen des Benutzers. Gibt es eine Möglichkeit, den Filter über das Masterblatt zu kopieren? Dies ist der Code, den ich für die innen kodierten Kriterien gefunden habe;

Private Sub Worksheet_Change(ByVal Target As Range) 
    ActiveSheet.ListObjects("Table4").Range.AutoFilter Field:=3, Criteria1:="=True" 
End Sub 

Vielen Dank im Voraus!

+1

dies scheint, wie es eine ganze Menge Arbeit, all die verschiedenen Arten von Filtern zu handhaben wäre, aber man kann die [ 'AutoFilter.Filters'] verwenden (https://msdn.microsoft.com/en -us/library/office/ff197843.aspx), um die Filter zu loopen und sie auf die anderen Tabellen anzuwenden – Slai

+0

fügen Sie einige Beispiele hinzu – user3598756

Antwort

1

Angenommen, Sie wählen nur ein Kriterium im Hauptblatt aus, können Sie das VBA ComboBOX-Steuerelement im Hauptarbeitsblatt zum Füllen von Filterkriterien verwenden. Als nächsten Schritt können Sie Code schreiben, wie unten für das ComboBox-Änderungsereignis gezeigt, das Filter auf alle verbleibenden vier Arbeitsblätter anwendet.
In diesem ComboBox Change-Ereignismakro können Sie den Wert einer ComboBox übernehmen und als Filterkriterium für alle vier Blätter übergeben. Beachten Sie, dass ich in meinem Fall eine Tabelle mit nur zwei Spalten berücksichtigt habe und die erste Spalte ein Filterkriterium für das Datum in jedem Arbeitsblatt und die zweite Spalte in der Tabelle einige Dummy-Werte enthält.

Private Sub ComboBox21_Change() 
Date = ComboBox21.Value 
Worksheets("Sheet1").Range("Table1").AutoFilter Field:=1, Operator:= _ 
     xlFilterValues, Criteria2:=Array(1, Date) 
Worksheets("Sheet2").Range("Table2").AutoFilter Field:=1, Operator:= _ 
     xlFilterValues, Criteria2:=Array(1, Date) 
Worksheets("Sheet3").Range("Table3").AutoFilter Field:=1, Operator:= _ 
     xlFilterValues, Criteria2:=Array(1, Date) 
Worksheets("Sheet4").Range("Table4").AutoFilter Field:=1, Operator:= _ 
     xlFilterValues, Criteria2:=Array(1, Date) 
End Sub 
Verwandte Themen