Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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?

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.


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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige