VBA: Daten vertikal sortieren

Daten in einem Arbeitsblatt sortieren ist eine Funktion, die du immer mal wieder ausführen wirst.

Wie das in Excel geht, habe ich dir in einem früheren Beitrag gezeigt.

Sortieren in Excel – Clevercalcul

Sortieren geht aber auch mit einem Makro.

In diesem Beitrag erfährst du, wie du mittels eines VBA-Codes sortieren kannst.

1. Beschreibung des vertikalen Sortierens

Das vertikale Sortieren eines Bereiches im Arbeitsblatt ist die wohl am häufigsten verwendete Sortiermethode.

Vertikales Sortieren bedeutet, die Daten innerhalb einer Spalte zeilenweise auf- oder absteigend zu sortieren.

Beim vertikalen Sortieren ist folgendes zu beachten:

Liegen mehrere zusammenhängende Spalten vor, z.B. A1:D9, und es sollen alle Zeilen innerhalb des Blocks sortiert werden, dann markiere nur eine Zelle in der Spalte, nach der auf- oder absteigend sortiert werden soll. Dann wähle die Sortierfunktion.

Ein Beispiel dazu:

Du hast eine Liste mit fünf Kunden.

Die Spalten sind Kunde, Kunden-Nr., Anfangsdatum, Umsatz und Ort.

Basiskundenliste
Kundenliste

2. Einstufige Sortierung

Du willst jetzt die Kunden alphabetisch von A-Z sortieren.

In Excel klickst du dazu z.B. die Zelle A4 an und gehst im Menü Start / Bearbeiten / Sortieren und Filtern und klickst dort auf „Von A bis Z sortieren“.

Die Kundenliste wird mit allen Spalten nach den Kundennamen sortiert.

Doch du willst es innerhalb einer Prozedur mit VBA ausführen. Dies sind die Schritte in der Prozedur:

  1. Beginne den Code mit der Clear-Methode. Damit stellst du sicher, dass alle Sortierparameter für dieses Arbeitsblatt auf Standardwerte zurückgesetzt werden. Möglicherweise hat irgendjemand die Parameter zuvor auf andere Werte gesetzt.
  2. Definiere den Bereich, der sortiert werden soll, gib die Anweisung „Sort“, benenne den ersten Sortierschlüssel mit „Key1“ und lege fest, dass eine Kopfzeile vorhanden ist.

Gib nun diese Codezeilen in dein Modul im VBA-Editor ein:

Sub SortVertEin()

Worksheets(„Tabelle1“).Sort.SortFields.Clear

Range(„A1:E6“).Sort Key1:=Range(„A1“), Header:=xlYes

End Sub

Lass nun das Makro ausführen, als Ergebnis erhältst du diese veränderte Tabelle.

sortierte Kundenliste, einstufig
einstufig sortierte Kundenliste

3. Mehrstufige Sortierung

Im vorherigen Abschnitt hast du deine Tabelle zwar vollständig, aber nur einstufig, das heißt nur nach einer Spalte sortiert.

Du kannst deine Datentabelle aber auch nach mehreren Spalten nacheinander sortieren. Das ist dann eine mehrstufige Sortierung.

Du könntest die Tabelle z. B. zuerst nach dem Ort in aufsteigender Reihenfolge und dann nach dem Datum in absteigender Reihenfolge sortieren.

Dies sind die Schritte, die deine Prozedur durchlaufen muss:

  1. Beginne den Code auch hier mit der Clear-Methode
  2. Definiere den Bereich, der sortiert werden soll, gib die Anweisung „Sort“, benenne den ersten Sortierschlüssel mit „Key1“, den zweiten Schlüssel mit „Key2“und lege fest, dass eine Kopfzeile vorhanden ist.
  3. Gib Anweisungen zur aufsteigenden Sortierung nach Key1 mit „Order1“ und zur absteigenden Sortierung nach Key2 mit „Order2“.

Gib nun diese Codezeilen in dein Modul im VBA-Editor ein:

Sub SortVertMehr()

Worksheets(„Tabelle2“).Sort.SortFields.Clear

Range(„A1:E6“).Sort Key1:=Range(„E1“), Key2:=Range(„C1“), Header:=xlYes, _

Order1:=xlAscending, Order2:=xlDescending

End Sub

Lass nun das Makro ausführen, als Ergebnis erhältst du diese veränderte Tabelle.

sortierte Kundenliste, mehrstufig
mehrstufig sortierte Kundenliste

Beachte, dass das Datum im zweiten Schritt ortsweise absteigend sortiert wird.

Das Beispiel enthält zu wenige Zeilen, so dass dieser Schritt in der sortierten Liste nicht sichtbar wird.


Entdecke mehr von Clevercalcul

Melde dich für ein Abonnement an, um die neuesten Beiträge per E-Mail zu erhalten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

WordPress Cookie Plugin von Real Cookie Banner