ich bin neu bei VBA und möchte gerne folgendes als Teil eines Makros ausführen:
1) Auf Blatt "Users" die Zeilen 2 bis 100 aufsteigend nach Spalte C sortieren (Spalte A enthält hier keine Werte).
2) Auf Blatt "Holidays" die Spalten E bis Z aufsteigend nach Zeile 1 sortieren
Der Makro-Recorder liefert dazu folgenden Code (von mir etwas angepasst), der aus meiner Sicht einige unnötige Informationen enthält und den Code dadurch ziemlich aufbläht und mir ist nicht klar, wofür hier die .Clear-Zeilen benötigt werden.
Kann mir jemand sagen, wie ich beides in jeweils einer Zeile und so kurz wie möglich schreiben kann ?
Mein Code:
ActiveWorkbook.Worksheets("Users").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Users").Sort.SortFields.Add Key:=Range("C2:C100"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Users").Sort
.SetRange Range("B2:D100")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveWorkbook.Worksheets("Holidays").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Holidays").Sort.SortFields.Add Key:=Range("E1:Z1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Holidays").Sort
.SetRange Range("E1:Z100")
.Header = xlGuess
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Vielen Dank im Voraus für Eure Hilfe, Max