Kopiere das in en MODUL:
Public Sub Sortieren(ByVal s1 As Integer, ByVal anz As Integer)
Dim rng As Range
Dim z1, z2, s2, lastrow As Integer
With ActiveSheet 'Finde letzte Zeile
lastrow = .Cells(.Rows.Count, s1).End(xlUp).Row
End With
z1 = 1: s2 = s1 + anz - 1: z2 = lastrow
Set rng = Range(Cells(z1, s1), Cells(z2, s2))
rng.Select
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range( _
Cells(z1 + 1, s1), Cells(z2, s1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveSheet.Sort
.SetRange rng
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Public Sub CommandButton1_Click()
Call Sortieren(3, 2) 'Sortiere ab und nach (den Werten von) Spalte 3 ; Gesamtanzahl der Spalten=2
End Sub
Und so kannst du es aufrufen (testen)
(z.b. call sortieren(1,2) für die ersten beiden Spalten bzw call sortieren(3,2) für die nächsten 2)
Hier zum Testen:
Public Sub CommandButton1_Click()
Call Sortieren(3, 2) 'Sortiere ab und nach (den Werten von) Spalte 3 ; Gesamtanzahl der Spalten=2
End Sub
|