Zeilen in Excel horizontal sortieren

Ich habe eine Excel-Datei mit mehreren Zeilen in denen unterschiedlich viele Werte stehen und möchte diese von links nach rechts für jede Zeile einzeln aufsteigend sortieren.

Beispiel-Datei vorher:
Beispiel Excel horizontale Sortierung vorher

Beispiel-Datei nachher:
Beispiel Excel horizontale Sortierung nachher

Das ganze in Excel zu machen ist recht einfach mit einem kleinen Makro lösbar. Unter Daten – Sortieren – Optionen kann man zwar einstellen, dass man die Zeile sortieren möchte und nicht die Spalte, aber dann sortiert Excel die Zeilen nach dem „Vorbild“ der ersten Zeile und dass ist nicht gewünscht.

Folgendes Makro erledigt die Aufgabe jedoch, indem es jede Zeile einzeln sortiert. Dabei kann über die Konstanten gesteuert werden, welche Spalten die Sortierung umfassen soll.

Option Explicit ' sorts cells in all rows of current worksheet ascending from left to right Sub horizontalSort() Dim i, lastRow As Integer Const firstColumn As Integer = 1 Const lastColumn As Integer = 10 ' find last row lastRow = Cells(1, 1).End(xlDown).Row ' sort cells in each row ascending from left to right For i = 1 To lastRow Range(Cells(i, firstColumn), Cells(i, lastColumn)).Select Selection.Sort Key1:=Range("A" & i), _ Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, _ Orientation:=xlLeftToRight, _ DataOption1:=xlSortTextAsNumbers Next i End Sub

3 Kommentare

  1. Vielen Dank!

  2. habe meines erachtens genau wie beschrieben unter makros die obige seite kopiert in makros eingefügt und …. funktioniert irgendwie nicht sicher habe ich einen Fehler gemachr leider weis ich nicht welchen, meinet du du könntest mir weiterhelfen danke
    gruss
    robert

  3. Hallo Stefan,
    vielen Dank für diese Lösung. Ich habe den Code etwas angepasst, so dass er vor dem Speichern der Tabelle ausgeführt wird.
    Meine bestehende Tabelle mit xxx Zeilen wird also beim ersten Speichern nach einfügen des Codes komplett durch sortiert.
    Danach habe ich den Code dahin gehend geändert, dass nun nur noch jeweils die letzte Zeile vor dem Speichern sortiert wird, da ich pro Tag nur eine Zeile dazu schreibe. Das spart Zeit, weil ja nur eine und nicht >100 Zeilen sortiert werden müssen.

    Gruß, Sebastian

Schreibe einen Kommentar

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax