Hallo,
wenn Du VBA einsetzen möchtest geht Dein Vorhaben sehr einfach mit ein Paar Zeilen Code.
Wie gesagt würde ich den Spezialfilter einsetzen. Du brauchst Da keinen Ausfallschritt oder Zwischenschritt
Ich lege Deine eingestellte Datei als Basis zugrunde.
Dann in das Codefenster der Tabellen, die aktualisiert werden sollen, folgenden Code einfügen:
Code:
Private Sub Worksheet_Activate()
aktualisieren (ActiveSheet.Name)
End Sub
und folgenden in ein Allgemeines Modul:
Code:
Sub aktualisieren(strgTab As String)
Dim lngZ As Long
With Sheets("csv")
lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
With Sheets(strgTab)
.Cells.Clear
'Kriterienbereic und Kriterien vorbereiten
.Range("AA1").Value = Sheets("csv").Range("D1").Value 'Überschrift aus Tabelle "csv" in Zelle AA1 der aktivierten Tabelle
.Range("AA2").Value = strgTab 'Tabellenname entspricht dem Filterkriterium und wird in AA2 der aktivierten Tabelle
'Filtern und Daten kopieren mittels Spezialfilter
Sheets("csv").Range("A1:E" & lngZ).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=.Range("AA1:AA2"), CopyToRange:=.Range("A1:E1"), Unique:=False
End With
End Sub
Bei jedem aktivieren einer der zu akrtualisierenden Tabellen werden diese jetzt automatisch neu eingelesen.
Unten Deine Beispieltabelle mit eingearbeitetem Code:
Kopie von excelnewbie_workbook_001-1.xlsm (Größe: 18,73 KB / Downloads: 3)