Forumbeitrag
Excel-Version des Fragestellers:
365 Business
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
Hi
mit folgendem Makro kannst du Werte von einem gefilterten Bereich in einen anderen ebenfalls gefilterten Bereich kopieren.
beachte beim Ausführen:
nach dem Markostart wirst du zuerst nach dem Kopierbereich (Quelle) gefragt, hier sind die selektierten Zelllen voreingestellt, und dann nach dem Einfügebereich (ziel)
du solltest in beiden Fällen möglichst die selbe Anzahl an Zellen markieren:
Sub Copy_spezial()
Dim Quelle As Range
Dim Ziel As Range
Dim c As Range
Dim Q, Z
Dim i As Long
Set Quelle = Application.InputBox("Kopierbereich", Default:=Selection.Address, Type:=8)
Set Ziel = Application.InputBox("Einfügebereich", Type:=8)
Set Quelle = Quelle.SpecialCells(xlCellTypeVisible)
Set Ziel = Ziel.SpecialCells(xlCellTypeVisible)
ReDim Q(1 To Quelle.Cells.Count) As String
ReDim Z(1 To Ziel.Cells.Count) As String
i = 0
For Each c In Quelle
i = i + 1
Q(i) = c.Worksheet.Name & "!" & c.Address(0, 0)
Next
i = 0
For Each c In Ziel
i = i + 1
Z(i) = c.Worksheet.Name & "!" & c.Address
Next
For i = 1 To WorksheetFunction.Max(Quelle.Cells.Count, Ziel.Cells.Count)
Range(Q(i)).Copy
Range(Z(i)).PasteSpecial xlPasteValues
Next
End Sub
mit diesem Makro kannst du zwischen zwei Blättern kopieren, aber nicht zwischen zwei Dateien (könnte man aber ggf erweitern)
Gruß Daniel