Excel-VBA: Sortieren nach Enddatum "spinnt"

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Juwee

Mitglied
G'nabend :)
Aus mir nicht so wirklich erklärbaren Gründen "spinnt" die Sortierung nach Enddatum (Spalte V) rum, während meine Sortierung nach Startdatum (Spalte H) problemlos funktioniert.

Meine vage Vermutung: scheinbar liegen durch die Formel von V7:V156 im Hintergrund Werte, die als Datum interpretiert werden, was dazu führt, dass beim absteigenden Sortieren alle Datenzeilen komplett nach untergeschoben werden (aktuell Zeile 140 bis 156)
Das deckt sich auch mit dem Ergebnis meiner Funktion gLR (get last Range).
In Spalte H ist es richtigerweise 23, in Spalte V 156, also die letzte aller letzte Zeile.

Hat jemand eine Idee wie man das lösen könnte?

Grüße und einen angenehmen Restabend, Uwe
 

Anhänge

  • Projektplanung_V1_Demo.zip
    104,9 KB · Aufrufe: 2
Dann hol dir doch per GetLastRange aus Spalte H die "letzte" Zeile, und setz im Makro "SortEnd"
die letzte Zeile in
"Range("B7:Z156").Select" (Anstatt dem jetzt hart codierten 156 eben die letzte Zeile)
Irgendwie (Aircode)
Visual Basic:
lz = GetLastRange("H") 'Letzte Zeile in Spalte H
Range("B7:Z" & lz & ").Select

Meine vage Vermutung: scheinbar liegen durch die Formel von V7:V156 im Hintergrund Werte, die als Datum interpretiert werden, was dazu führt, dass beim absteigenden Sortieren alle Datenzeilen komplett nach untergeschoben werden (aktuell Zeile 140 bis 156)
Falsch. Du hast ne Formel die bis V156 geht.
Zwar gibt diese Formel "" aus, falls die Zelle zu "weit unten" ist, für das Sortieren (siehe oben drüber) ist die Zelle "nicht leer", und wird somit sortiert
 
Guten Morgen ,
sorry, dass ich erst jetzt reagiere. Ich hatte die Tage bisschen was auf dem Monitor.
Das Problem konnte ich zwischenzeitlich lösen... und so ganz nebenbei fiel mir dann auch noch ein anderer Fehler auf (ich hatte die Sortierung nur bis nur bis Z statt bis OD)
Visual Basic:
Sub SortEnd()
    If ActiveSheet.Shapes("Sort 2").ControlFormat.Value = 1 Then
        Direction = xlAscending
    Else
        Direction = xlDescending
    End If
    Application.ScreenUpdating = False
        Range(Cells(7, 2), Cells(gLR, 392)).Select
            Selection.Sort Key1:=Range("V6"), Order1:=Direction, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    Application.ScreenUpdating = True
    If Direction = 1 Then
        Range(Cells(gLR, 2), Cells(gLR, 26)).Select
    Else
        Range(Cells(7, 2), Cells(7, 26)).Select
    End If
End Sub
Trotzdem Danke und Gruß, Uwe
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge

Zurück