Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien

Anbei ein kleines Beispiel für das Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien. Es wird sowohl das auf- als auch das absteigende Sortieren demonstriert.

Bis Excel 2003 ist die Anzahl der Sortierkriterien auf 3 beschränkt, siehe Abb.

Dieses VBA-Makro sortiert eine Liste mit 4 bzw. 5 Sortierkriterien. Den Code zur aufsteigenden Sortierung anhand von 4 Kriterien sehen Sie im nachfolgenden Listing.

Sub Sortieren_mit_4Kriterien() 'Wkn / ManNr / GerätNr / StartReihenfolge
    Dim intZeile%, strSpalte$, intLastRow%, strSortRange$
    Dim ceManNr$, ceWKN$, ceGerätNr$, ceStartreihenfolge$, ceNachname$, ceVorname$
 
    On Error GoTo ende
    
    intZeile = ActiveSheet.Range("A:G").Find(What:="Vorname").Row + 1
   strSpalte = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64)
   intLastRow = Cells(Rows.Count, 1).End(xlUp).Row
   strSortRange = "$A$" & intZeile & ":$" & strSpalte & "$" & intLastRow 
   ceManNr = Chr(ActiveSheet.Range("A:G").Find(What:="ManNr").Column + 64) & intZeile 
   ceWKN = Chr(ActiveSheet.Range("A:G").Find(What:="WKN").Column + 64) & intZeile
   ceGerätNr = Chr(ActiveSheet.Range("A:G").Find(What:="GerätNr").Column + 64) & intZeile
   ceStartreihenfolge = Chr(ActiveSheet.Range("A:G").Find(What:="Startreihenfolge").Column + 64) & intZeile   
   ceNachname = Chr(ActiveSheet.Range("A:G").Find(What:="Nachname").Column + 64) & intZeile 
   ceVorname = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64) & intZeile
   Application.ScreenUpdating = </span><span style="color: #0000ff;">False

    
    With ActiveSheet
       Range(strSortRange).Sort _
          Key1:=.Range(ceStartreihenfolge), Order1:=xlAscending, Header:=xlGuess
            '1=Sortierkriterium 4 = Startreihenfolge
       Range(strSortRange).Sort _
          Key1:=.Range(ceWKN), Order1:=xlAscending, _
          Key2:=.Range(ceManNr), Order2:=xlAscending, _
          Key3:=.Range(ceGerätNr), Order3:=xlDescending, Header:=xlGuess
            '1=Sortierkriterium 1 = Wkn
            '2=Sortierkriterium 2 = ManNr
            '3=Sortierkriterium 3 = GerätNr
    End With
 ende:
    Application.ScreenUpdating = True
 End Sub 



In der Datei, welche Sie herunterladen können, ist auch der Code für das Sortieren mit 5 Kriterien enthalten.



Ab Excel 2007 ist der Zusatzcode nicht mehr notwendig, da ab dieser Version bis zu 64 Sortierkriterien standardmäßig unterstützt werden, siehe folgende Abbildung.



Sie brauchen eine individuelle Excel-/Office-Lösung?

Wir entwickeln Ihr Makro, Tool oder Ihre Datenbank – passgenau für Ihr Unternehmen.

Relevante Artikel

  • Zeilen abhängig von einer bestimmten Bedingung löschen

    Bedingte Zeilenlöschung Mit diesem Makro können sie Zeilen abhängig von einer Bedingung löschen. Die Bedingung in diesem...

  • Daten direkt bei Eingabe ersetzen

    In diesem Beispiel zeigen wir, eine Alternative Methode zur AutoKorrektur-Option um Daten direkt bei der Eingabe ersetzen...

  • Duplikate entfernen - Verschiedene Möglichkeiten

    Excel: Doppelte Werte in einer Liste schnell finden und entfernen Eine häufige Fragestellung im Umgang mit Excel ist das...

  • Grafiken (Bilder) über eine Wenn-Abfrage einfügen

    Das folgende Makro fügt abhängig vom Inhalt der Zelle A1 eine Grafik ab der Zelle D1 ein. Steht in A1 die Ziffer 1, so...

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

Projekt-Anfrage

Excel automatisieren. Zeit sparen.
Fehler vermeiden.
Wir entwickeln Ihre individuelle
Excel- / VBA-Lösung.
Jetzt anfragen!

    Wir benutzen Cookies
    Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.