Aufsteigend sortieren und leere Zellen ans Ende verschieben
Schritt-für-Schritt-Anleitung
Um Daten in Excel aufsteigend zu sortieren und dabei leere Zellen ans Ende der Liste zu verschieben, kannst Du folgendes VBA-Makro verwenden. Achte darauf, dass dieses Beispiel für Excel 2013 und höher funktioniert.
-
Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
-
Füge den folgenden Code in das Modul ein:
Private Sub Workbook_Open()
Dim i As Integer, laR As Integer
Application.ScreenUpdating = False
With Worksheets("kurz")
.Range("A7:K47").Sort Key1:=.Range("A7"), _
Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
laR = 47
For i = 47 To 1 Step -1
If .Cells(i, 1).Text <> "" Then
laR = i
Exit For
End If
Next i
.Range("A7:K" & laR).Sort Key1:=.Range("A7"), _
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
Application.ScreenUpdating = True
End Sub
-
Schließe den VBA-Editor und speichere die Arbeitsmappe als xlsm (Makro-fähige Datei).
-
Schließe die Datei und öffne sie erneut, um die Sortierung automatisch auszuführen.
Häufige Fehler und Lösungen
-
Leerzeilen stehen am Anfang: Dies passiert häufig, wenn die Zellen Formeln enthalten, die den Wert 0 zurückgeben. Stelle sicher, dass die Zellen tatsächlich leer sind oder passe die Bedingung im Code an.
-
Flackernder Bildschirm: Achte darauf, die Zeilen Application.ScreenUpdating = False und Application.ScreenUpdating = True nur einmal zu verwenden, um das Flackern beim Sortieren zu vermeiden.
Alternative Methoden
Wenn Du die leeren Zellen ignorieren oder aus der Sicht der Sortierung ausschließen möchtest, kannst Du die Funktion FILTER oder SORT in neueren Excel-Versionen (Excel 365 oder Excel 2021) verwenden. Ein Beispiel:
=SORT(FILTER(A7:K47, A7:A47 <> ""), 1, TRUE)
Diese Formel sortiert die Werte aufsteigend und ignoriert leere Zellen.
Praktische Beispiele
Angenommen, Du hast folgende Daten in den Zellen A7 bis A10:
5
3
(empty)
2
(empty)
1
Nach der Anwendung des Makros oder der Formel würde die sortierte Liste so aussehen:
1
2
3
5
(empty)
(empty)
So kannst Du sicherstellen, dass die leeren Zellen ans Ende verschoben werden.
Tipps für Profis
- Überlege, ob Du die Excel-Formel
SORT oder FILTER verwenden möchtest, um leere Zellen zu ignorieren, anstatt VBA zu nutzen.
- Wenn Du mehrere Bereiche gleichzeitig sortieren möchtest, kannst Du eine Schleife im VBA-Code verwenden, um den Prozess zu automatisieren und den Code zu kürzen.
FAQ: Häufige Fragen
1. Wie kann ich leere Zellen in der Sortierung ignorieren?
Du kannst die FILTER-Funktion verwenden, um leere Zellen auszuschließen, bevor Du die Daten sortierst.
2. Was mache ich, wenn das Sortieren nicht funktioniert?
Überprüfe, ob die Zellen tatsächlich leer sind oder ob sie Formeln enthalten, die Werte zurückgeben. Möglicherweise musst Du den VBA-Code anpassen.
3. Kann ich die Sortierung auch ohne VBA durchführen?
Ja, Du kannst die Funktion SORT oder FILTER in den neuesten Excel-Versionen verwenden, um Daten dynamisch zu sortieren und leere Zellen zu ignorieren.