in einer Tabelle möchte ich die Zeilen nach einer Spalte mit sichtbaren Text-Daten aufsteigend sortieren, die mit einer Formel gefüllt wurde. Da die Tabelle in der Regel nicht vollständig gefüllt ist, sollen die "leeren" Zeilen unten angehängt werden. Durch Googeln habe ich hier im Forum eine Möglichkeit (aus 2003) gefunden und für meine Muster-Tabelle angepasst:
Sub Sortieren_Klasse()
Application.ScreenUpdating = False
ActiveSheet.Sort.SortFields.Clear
Dim i As Integer, laR As Integer
With ActiveSheet
.Range("B3:M14").Sort Key1:=.Range("E3"), _
Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
laR = 14
For i = 14 To 1 Step -1
If .Cells(i, 1).Text > "" Then
laR = i
Exit For
End If
Next i
.Range("B3:M" & laR).Sort Key1:=.Range("E3"), _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
ActiveSheet.Sort.SortFields.Clear
Application.ScreenUpdating = True
End Sub
Leider werden nach diesem Code die Textdaten zwar aufsteigend sortiert, die Leerzeilen aber vorangestellt. Die Sortierung nach einer Spalte mit Werten bringt das gewünschte Ergebnis mit darunter stehenden Leerzeilen.
Wenn ich den Code richtig deute, wird im ersten Schritt die Tabelle absteigend sortiert. Anschließend zählt der Code die gefüllten Zeilen (laR) und begrenzt im nächsten Schritt mit "laR" den aufsteigend zu sortierenden Bereich. Das Zählen der Zeilen bis > "" funktioniert anscheinend nicht. Gezählt werden vermutlich alle Zeilen, weil in den "leeren" Zellen Formeln stehen. Der Code soll aber genau dafür die Lösung sein.
Eine Erweiterung um eine 2. Sortierung konnte ich aus vorstehendem Grund noch nicht angehen. Diese Untersortierung betrifft eine Spalte mit Werten in absteigender Sortierung (hier Ergebnis).
Hat jemand eine Lösung für dieses Problem? Eine Musterdatei habe ich hochgeladen unter https://www.herber.de/bbs/user/167131.xlsm.
Viele Grüße
Franz