Das nächste Objekt in der Hierarchie von Excel sind die Zeilen und Spalten. Auch zu diesen Objekten folgen nun zwei Beispiele.

2.1 Jede zweite Zeile ausblenden

Im folgenden Beispiel wird in der aktiven Tabelle jede zweite Zeile ausgeblendet.

Sub JedeZweiteZeileAusblenden()
Dim lngZ As long
For lngZ = 1 To ActiveSheet.UsedRange.Rows.Count
If lngZ Mod 2 = 0 Then
  Rows(lngZ).EntireRow.Hidden = True
End If
Next lngZ
End Sub

Dieses Makro können Sie anpassen, wenn Sie beispielsweise nur jede dritte Zeile ausblenden möchten, indem Sie den Befehl lngZ Mod 2 = 1 durch den Befehl lngZ Mod 3 = 1 ersetzen. Die Funktion Mod gibt den Rest einer ganzzahligen Division zweier Zahlen zurück. Über die Variable lngZ wird die jeweilige Zeile dargestellt. Es wird also die jeweilige Zeilennummer (Rows(lngZ)) beispielsweise durch 3 geteilt. Bleibt ein Rest von 0 übrig, dann wird die komplette Zeile (=EntireRow) ausgeblendet (=Hidden). Mit der Anweisung ActiveSheet.UsedRange.Rows.Count wird übrigens die Anzahl der verwendeten Zeilen in einer Tabelle ermittelt.

2.2 Gefilterte Zeilen auf eine neue Tabelle übertragen

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