Etwas Arbeit kann man sich ersparen, wenn man auf einer Tabelle mit einem Datenfilter (s. Abb. 1) alle gefilterten Zeilen auf eine neue Tabelle automatisch überträgt.

Abb. 1: Die gefilterte Liste soll automatisch auf eine neue Tabelle übertragen werden.

Dabei sieht das Makro für diese Aufgabe wie folgt aus:

Sub GefilterteDatenKopieren()
ActiveSheet.Range("A1").CurrentRegion.SpecialCells(xlVisible).Copy
Worksheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Beim gerade vorgestellten Makro wird angenommen, dass der Datenfilter in Zeile 1 eingestellt ist. Beginnt der Datenfilter beispielsweise in Zelle A3, dann ersetzen Sie den Befehl ActiveSheet.Range("A1") durch den Befehl ActiveSheet.Range("A3"). Mithilfe der Eigenschaft CurrentRegion wird der um diese Zelle liegende Bereich ermittelt. Über die Methode SpecialCells können Sie alle sichtbaren Zellen ermitteln, indem Sie dieser Methode die Konstante xlVisible zuweisen. Der Befehl Copy sorgt dafür, dass diese sichtbaren Zeilen in die Zwischenablage kopiert werden. Über den Befehl Worksheets.Add fügen Sie eine neue Tabelle ein. Danach wenden Sie die Methode Paste an, um den Inhalt der Zwischenablage in die neue Tabelle einzufügen. Um den Laufrahmen, der beim Kopieren entsteht, zu entfernen, setzen Sie die Eigenschaft CutCopyMode auf den Wert False.

Das ist nur ein Ausschnitt aus dem Produkt Controlling Office. Sie wollen mehr?

Anmelden und Beitrag in meinem Produkt lesen


Meistgelesene beiträge