Hallo Leute,
Ich habe ein Excelarbeitsblatt in dem die ersten 7 Zeilen Kopfinfos sind,
In den Zelle A7:Jxxx(xxx steht hier für variablen) stehen meine Infos. Jetzt möchte ich als 1.Ebene nach der Spalte A sortieren und als 2.Ebene nach Spalte B sortieren.
Ich müsste wissen wie sowas in VBA aussieht.
Habe leider davon keine Achung.
vielen Dank für eure Hilfe in vorraus.
mfg Werner
Jetzt möchte ich als 1.Ebene nach der Spalte A
sortieren und als 2.Ebene nach Spalte B sortieren.
Ich müsste wissen wie sowas in VBA aussieht.
Habe leider davon keine Achung.
Dann mach das doch einmalig von Hand und lass dabei einfach mal eine Makroaufzeichnung laufen. Oder wo könnte sonst ein Problem sein?
Gruß
smalbop
Das Problem ist, das die Anzahl der Zellen von A7:J1 bis nach A7:J??? sich verändern können.Deshalb kann ich keine absolute Zellennamen verwenden.
Gruß
Werner
1 „Gefällt mir“
Dann zeichne den Code auf, stelle ihn hier rein und ich nehme die nötigen Änderungen vor.
Dann zeichne den Code auf, stelle ihn hier rein und ich nehme
die nötigen Änderungen vor.
Hallo smalbop
Vielen Dank für den Tip. Es funktioniert.
Mein Script sieht jetzt wie folgt aus.
Worksheets(„ProjekteMitKom“).Select
ActiveWorkbook.Worksheets(„ProjekteMitKom“).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(„ProjekteMitKom“).Sort.SortFields.Add Key:=Range _
(Cells(7, 1), Cells(rMaxOK, 1)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets(„ProjekteMitKom“).Sort.SortFields.Add Key:=Range _
(Cells(7, 2), Cells(rMaxOK, 2)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets(„ProjekteMitKom“).Sort
.SetRange Range(Cells(7, 1), Cells(rMaxOK, 10))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Meine Frage ist:
Kann man das Script vereinfachen da ich ja schon vorher das Arbeitsblatt aufgerufen habe.
Hallo Werner
Kann man das Script vereinfachen da ich ja schon vorher das
Arbeitsblatt aufgerufen habe.
Ich habe das gekürzt, was vermutlich überflüssig ist. Teste mal
With ActiveSheet.Sort
With .SortFields
.Clear
.Add Key:=Range(Cells(7, 1), Cells(rMaxOK, 1)), \_
SortOn:=xlSortOnValues
.Add Key:=Range(Cells(7, 2), Cells(rMaxOK, 2)), \_
SortOn:=xlSortOnValues
End With
.SetRange Range(Cells(7, 1), Cells(rMaxOK, 10))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
Ich nehme an, du hast eine geeignete Methode, wie man rMaxOK bestimmt. Per Code ginge das ebenso, aber als Zellfunktion natürlich auch.
Gruß
smalbop
Hallo smalbop,
Vielen Dank. Es funktioniert.
Werner