Hallo Forum,
ich muß eine Tabelle nach einer Spalte sortieren, deren Zellen nur Buchstaben oder Leerstellen enthalten.
Dabei werden, egal ob aufsteigend oder absteigend sortiert wird, die Zeilen, die Leerstellen in der sortierten Spalte enthalten, immer hinter die Zeilen mit Buchstaben sortiert.
Ich möchte die Zeilen mit Leerstellen aber vor die Zeilen mit Buchstaben sortiert haben.
Als Notbehelf habe ich vor dem Sortieren alle zu sortierenden Zellen die Leerstellen enthalten mit "1" gefüllt, aufsteigend sortiert und nach dem Sortieren die "1" wieder entfernt:
Sub Sortieren()
Dim cell As Range
For Each cell In Range("M10:M1200")
If cell.Value = "" And cell.Offset(0, -9).Value > "" Then
cell.Value = "1"
End If
Next
Range("M10:M1200").Select
Selection.Sort Key1:=Range("M10"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Dim cell1 As Range
For Each cell1 In Range("M10:M1200")
If cell1.Value = "1" And cell1.Offset(0, -9).Value > "" Then
cell1.Value = ""
End If
Next
End Subb
Das Ergebnis ist wie gewünscht, die Sortierung dauert allerdings zu lange!
Gibt es eine elegantere Lösung?
Gruss
hans-werner