Ich möchte gerne eine Tabelle nach einer Spalte sortieren. Dabei sollen allerdings Zeilen, dessen Zellen verbunden sind, ignoriert werden.
Gibt es da eine Möglichkeit?
Guß
Mannson
Um in Excel nur bestimmte Zeilen zu sortieren und dabei Zeilen mit verbundenen Zellen zu ignorieren, kannst Du das folgende VBA-Skript verwenden:
Öffne Excel 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:
Sub SortiereOhneVerbunden()
Dim ws As Worksheet
Dim rng As Range
Dim i As Long
Set ws = ThisWorkbook.Sheets("DeinBlattname") ' Ersetze "DeinBlattname" durch den Namen deines Arbeitsblattes
Set rng = ws.Range("A1:A" & ws.Cells(ws.Rows.Count, "A").End(xlUp).Row) ' Spalte A anpassen, falls nötig
' Temporäre Array für die Sortierung
Dim tempArr() As Variant
ReDim tempArr(1 To rng.Rows.Count)
Dim index As Long
index = 1
' Überprüfen und Auslassen von verbundenen Zellen
For i = 1 To rng.Rows.Count
If Not rng.Cells(i, 1).MergeCells Then
tempArr(index) = rng.Cells(i, 1).Value
index = index + 1
End If
Next i
' Sortiere das Array
ReDim Preserve tempArr(1 To index - 1)
Call BubbleSort(tempArr)
' Ergebnisse zurückschreiben
For i = 1 To UBound(tempArr)
rng.Cells(i, 1).Value = tempArr(i)
Next i
End Sub
Sub BubbleSort(arr As Variant)
Dim i As Long, j As Long
Dim temp As Variant
For i = LBound(arr) To UBound(arr) - 1
For j = i + 1 To UBound(arr)
If arr(i) > arr(j) Then
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
End If
Next j
Next i
End Sub
Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.
Fehler: Makro kann nicht ausgeführt werden.
Fehler: Die Zellen werden nicht korrekt sortiert.
Falls Du keine VBA-Lösungen verwenden möchtest, gibt es auch die Möglichkeit, die Daten manuell zu sortieren. Du kannst dies tun, indem Du die gewünschten Zeilen kopierst und in eine neue Tabelle einfügst, bevor Du die Daten sortierst. Achte darauf, dass Du die verbundenen Zellen manuell überprüfst und löscht, bevor Du die Sortierung durchführst.
Wenn Du beispielsweise eine Liste mit Namen in Spalte A hast und einige dieser Namen in verbundenen Zellen stehen, wird das oben genannte VBA-Skript nur die Namen, die nicht verbunden sind, sortieren. So kannst Du sicherstellen, dass Du in Excel nur bestimmte Zeilen sortierst, während die verbundenen Zeilen ignoriert werden.
1. Kann ich das Makro auch für andere Spalten verwenden? Ja, Du kannst die Spalte im Code anpassen, um eine andere Spalte zu sortieren.
2. Funktioniert das Skript auch in Excel 365? Ja, das Skript sollte in allen modernen Excel-Versionen funktionieren, einschließlich Excel 365.
3. Wie kann ich das Makro anpassen, um die erste Zeile auszuschließen? Füge im Code eine Bedingung hinzu, die die erste Zeile überspringt, beispielsweise durch die Anpassung der Schleife.