Listen mit VBA effizient auswerten

Grosse Datenmengen auswerten – das ist eine alltägliche Aufgabe beim Arbeiten mit Excel. Wenn die Standard-Funktionen von Excel an ihre Grenzen stossen, dann hilft in vielen Fällen ein VBA-Programm, wiederholende Arbeitsgänge eleganter und schneller zu lösen. Allerdings tritt hierbei häufig eine Herausforderung auf.

Autor/in besirfazliji
Datum 22.05.2023
Lesezeit 3 Minuten

Eine Liste mit Daten wird regelmässig aus einer Datenbank heruntergeladen und in eine Excel-Arbeitsmappe importiert. Mit Hilfe einer For-Next-Schleife in Verbindung mit dem Cells-Objekt kann eine solche Liste in VBA sehr effizient ausgewertet werden.

Der Umfang dieser Daten schwankt je nach Geschäftsverlauf, wirft aber regelmässig die Frage auf: Wie lang ist die Liste diesmal? Es geht also darum, die letzte Zeile der Liste zu finden.

1. Letzte Zeile vom Anfang her ermitteln

Definieren Sie den Anfang der Liste (am besten eine Zelle in der Überschrift) und verwenden Sie dann die END-Eigenschaft.

Die Angabe «xlDown» gibt die Suchrichtung vor, in der die letzte Zeile gesucht werden soll. Dies funktioniert basierend auf dem ausgewählten Range, in jede Richtung.

Wenn Sie wissen möchten, wie viele Spalten Ihre Liste hat, verwenden Sie entsprechend

Achtung:

Dies funktioniert nur, wenn die als Startpunkt angegebene Spalte (im Beispiel Spalte A) keine leeren Zellen enthält. Sie können den Vorgang jedoch von jeder Spalte aus starten; in den meisten Fällen gibt es mindestens eine Spalte, die keine leeren Zellen enthält.

2. Letzte Zeile vom Ende her ermitteln

gibt die Anzahl der Zeilen in Ihrem Arbeitsblatt an, im XLSX- oder XLSM-Dateiformat sind dies 1048576. Sie müssen also ab dieser Zeile nach oben suchen, indem Sie wieder die END-Eigenschaft verwenden.

«Cells(Rows.Count, 1)» definiert die letzte Zelle des Arbeitsblatts in der 1. Spalte (Spalte «A»).

3. Letzte Zeile einer Tabelle ermitteln

Eine Tabelle wird von Excel (und damit auch von VBA) grundsätzlich «als Ganzes» betrachtet. Wenn Ihre Liste also als Tabelle formatiert ist, brauchen Sie sich keine Gedanken über leere Zeilen zu machen; auch diese werden gezählt.

Geben Sie Ihrer Tabelle einen Namen. Dieser Name wird in VBA über die Eigenschaft «ListObjects» referenziert.

Excel lernen bei der Digicomp Academy

Hier finden Sie Kurse, die wir Ihnen für den Umgang mit Excel empfehlen können:

Hier finden Sie Kurse, die wir Ihnen für den Umgang mit Excel empfehlen können:


Autor/in

besirfazliji