Ich würde gerne über mehrere Spalten sortieren - eigentlich ganz einfach.
Das Problem hierbei ist, dass ein Arbeitsblatt nicht unendlich viele Zeilen zur Verfügung stellt; daher kann es sein, dass ggf. die letzte Zeile des Tabellenblatts (1.048.576) erreicht wird, jedoch weitaus mehr Daten anfallen.
Zur Veranschaulichung habe ich euch einen Screenshot angefügt, um das Problem besser verstehen zu können - mit Vorher- und gewünschtem Nachherzustand:
Sp. steht dabei für die Spalte, Z. für die Zeilennr.
Ich möchte nun den Bereich T2:U1048576 UND V2:W1048576 (die 1. Zeile ist für Überschriften reserviert) sortieren lassen - und zwar aufsteigend nach Spalte T und, wie hier dargestellt, bei "Überlauf" weiter mit Spalte V, so dass dann die Werte aufsteigend in den Spalten T und V zu sehen sind.
"Normales" Sortieren ist ja kein Problem - vgl. meinen Code zum Sortieren mit 2 Ebenen:
Private Function sortieren()
With ActiveWorkbook.Worksheets("Korpus").Sort
'Bezug auf Tabellenblatt "Korpus" der aktiven Arbeitsmappe
.SortFields.Clear
'vorherige Parameter des Sort-Objekts löschen
.SortFields.Add Key:=Range("T2:T1048576"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'1. Sortierebene: Spalte T aufsteigend sortieren
.SortFields.Add Key:=Range("U2:U1048576"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
'2. Sortierebene: Spalte U aufsteigend sortieren
.SetRange Range("T2:U1048576")
'zu sortierender Bereich
.Header = xlNo
'keine Überschriften
.MatchCase = False
'keine case sensitive-Sortierung
.Orientation = xlTopToBottom
'aufsteigend sortieren
.Apply
'Sortierung durchführen
End With
End Function
Ich hatte schon gesucht und bin auf diesen Beitrag hier gestoßen:https://www.herber.de/mailing/135401h.htm
Ich weiß aber nicht, ob das in die richtige Richtung geht; mich verwirrt der Code eher mehr als er hilft und ich weiß nicht so recht, was er anstellen soll (Warum etwa in 2-er-Schritten ("Step 2") verfahren?).
Hinweis:
Die 2 Spalten sind nur Beispiele. Im Endeffekt liegen 2 strukturell identische Tabellen mit Daten direkt nebeneinander; lassen wir es mal 5 Spalten sein.
Dann soll nach mehreren Ebenen sortiert werden, jedoch aufsteigend über 2 Spalten sobald mal die letzte Zeile der linken Tabelle erreicht wurde.
Access besitze ich nicht (daher die Behelfslösung mit Excel) und zur Aneignung anderer Programmierkenntnisse wie etwa PHP sitzt mir die Zeit zu sehr im Nacken.
Zudem verwende ich die Excel-Daten auch für Auswertungen in Word.
Bei Fragen fragen. :)
Hat jemand vielleicht einen Schubser in die richtige Richtung?
Danke für eure Hilfe!