# VB - Makro Sortieren



## Chebbes (17. Januar 2006)

Hallo, also ich hab eine Excel Tabelle mit etlichen Einträgen (ginau "392"), jetzt will ich die Liste nach verschiedenen Kriterien sortieren. Das problem dabei ist, dass man in Excel nur 2 bzw. 3 Merkmale hintereinander sortieren kann (--> "Datei" --> "Sortieren"). 

Die Liste kann man sich in etwa so vorstellen:

```
A  B  C  D  E  F  G  H  I  J  K  L  M  N O P Q R S T...
1                    1
2                       1
3                             1
4                          1
```
Jetzt soll als erst nach Spalte "H" dann "I" dann "J" usw. sortiert werden...

Jetzt besteht jedoch das Problem dass ich nicht nur 3 Merkmale hintereinander sortieren will/muss sondern gleich 9 Stück. Daraufhin hab ich ein Makro aufgezeichnet und dabei den Sortiervorgang 3x wiederholt (3x3 = 9 ). Als ich das Makro dann im VB-Editor angeschaut hab ist mir aufgefallen, dass ich vielleicht nicht 3x Sortiren muss, sondern alles in einem Rutsch erledigen könnte. Dann könnte ich spätere Einträge auch mit dem gleichen Makro sortieren, müsste nur die Range des Makros erweitern.

Hier jetzt mal wie ich mir das in etwa vorgestellt hab:

```
Attribute VB_Name = "Modul1"

Sub Sortieren()
Attribute Sortieren.VB_Description = "Makro am 17.01.2006 von XXXX aufgezeichnet"
Attribute Sortieren.VB_ProcData.VB_Invoke_Func = " \n14"
'
' Sortieren Makro
' Makro am 17.01.2006 von XXXX aufgezeichnet
'
  Range("A2:S392").Select
  Range("S392").Activate
  Selection.Sort Key1:=Range("F2"), Order1:=xlAscending, Key2:=Range("G2"), Order2:=xlAscending, Key4:=Range("H2"), Order3:=xlAscending, Key5:=Range("I2"), Order4:=xlAscending, Key6:=Range("J2"), Order5:=xlAscending, Key7:=Range("K2"), Order6:=xlAscending, Key8:=Range("L2"), Order7:=xlAscending, Key9:=Range("M2"), Order8:=xlAscending, Key10:=Range("B2"), Order9:=xlAsxending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal, DataOption4:=xlSortNormal, DataOption5:=xlSortNormal, DataOption6:=xlSortNormal, DataOption7:=xlSortNormal, DataOption8:=xlSortNormal, DataOption9:=xlSortNormal
End Sub
```
Wenn ich das Makro Ausführe bringt er mir einen Laufzeitfehler, wie würdet ihr mein Problem am besten/schnellsten bzw. am sinnvollsten lößen .


----------

