Hilfe bei Excel Makro das gefilterte Daten in eine andere Excel Datei kopieren soll?
Hallo, ich benötige ihre Hilfe bei der Erstellung eines VBA Makros für Excel. Das Makro soll folgendes leisten: Ich habe eine Excel Datei (Nr. 1) in der in einer Zelle ein Wert eingetragen wird. Nach diesem Wert soll dann in einer anderen Excel Datei (Nr. 2) gefiltert werden und anschließend sollen die gefilterten Daten aus Excel Datei Nr. 2 in die Excel Datei 1 kopiert werden. Ist das möglich?
Vielen Dank vorab für ihre Antworten.
2 Antworten
Klar. So kannst du z.B. filtern Field gibt dabei an, in welcher Spalte gefiltert werden soll. Field:=1 wäre also die erste Spalte des Filterbereichs.
Sheets("Tabelle2").Range("Filterrange_Eintragen").AutoFilter Field:=1, Criteria1:=Sheets("Tabelle1").Range("A1").Value
Dann einfach den Bereich über Sheets("XYZ").Range("A1:C10").Copy kopieren und über Sheets("ZYX").Range("A1").Paste einfügen.
Wenn du auf unterschiedliche Dateien referenzieren willst, vor dem Sheets jeweils noch Workbooks("Dateiname.xlsm").
Hallo,
so funktioniert es bei mir:
Workbooks.Open Filename:="C:\Users\test\Desktop\Mappe2.xlsm"
Workbooks("Mappe1.xlsm").Sheets("Tabelle1").Range("A1:B5").AutoFilter Field:=1, Criteria1:=Workbooks("Mappe2.xlsm").Sheets("Tabelle1").Range("A1").Value
Workbooks("Mappe1.xlsm").Sheets("Tabelle1").Range("A1:B5").Copy Workbooks("Mappe2.xlsm").Sheets("Tabelle1").Range("A2")
Schreib hinter dem Copy-Befehl direkt das Ziel. Also ....Copy Ziel
wenn das nicht Teil eines größeren Makros sein soll, brauchst Du keins.
m.Erinnerung nach kannst Du einen gefilterten Bereich mit kopieren - Einfügen als Werte (im Kontext-Menü oder als altes Icon, geht in die benutzerdefinierte Leiste -das ist die, in der rückgängig und wiederholen-Icons drinstehen- zu übernehmen, ich habs drin) an den Zielort bringen, ohne dass die ausgeblendeten Zellen mitübernommen werden. (anders als beim normalen Einfügen). Ausprobieren will ich das jetzt nicht, bin in Eile.
Es soll Teil eines größeren Makros und automatisiert passieren. Manuelles filtern und kopieren ist kein Alternative. Trotzdem Danke.
dann zeichne doch die zugehörigen Aktionen auf, damit Du Info über notwendige Befehle und ihre Syntax erhältst!
Ebenfalls nur m.Erinnerung nach muss man für solche Aktionen erst mal das Workbook ALS WINDOWS(Workbooks(...).Name) oder so ähnlich (der Name kann auch direkt eingetippt werden).aktivieren, dann das Blatt aktivieren und kann dann erst filtern. Ist aber lange her, dass ich das mal gemacht hab, ausserdem könnte VBA da inzwischen verbessert worden sein..
Hallo, vielen Dank für die schnelle Hilfe. Leider bin ich kein VBA Experte. Ich habe folgenden Code aus Deinen Ausführungen "gebastelt". Der Code funktioniert aber nicht, er bricht beim Autofiltern ab. Wissen Sie warum?
Sub Öffnen()
' Öffnen Makro
Set wbAktuell = ActiveWorkbook
Workbooks.Open Filename:="C:\Daten\import.xlsx"
Workbooks("import.xlsx").Sheets("Daten").Range("A1:BC5000").AutoFilter Field:=4, Criteria1:=Workbooks("XXX Controlling.xlsm").Sheets("Übersicht").Range("K2").Value
Workbooks("import.xlsx").Sheets("Daten").Range("A1:BC5000").Copy
Workbooks("XXX Controlling.xlsm").Sheets("Daten").Range("A1").Paste
End Sub