Spalten nach Vorgabe anordnen und sortieren
Schritt-für-Schritt-Anleitung
Um die Excel-Spaltenreihenfolge zu ändern und sie nach einer bestimmten Vorgabe anzuordnen, kannst Du ein VBA-Makro verwenden. Hier ist ein einfaches Beispiel, das Du anpassen kannst:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Wähle im Menü
Einfügen
die Option Modul
, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub rearangeColumns()
Dim vntColumns As Variant
Dim vntAranged() As Variant
Dim vntRet As Variant
Dim lngindex As Long
vntColumns = Array("Suchbegriff", "Debitor", "Anlage A", "Anlage B", "Summe", "Datum", "Diff. AB", "x Über") ' Spalten in der gewünschten Reihenfolge
ReDim vntAranged(1 To UBound(vntColumns) + 1)
For lngindex = 0 To UBound(vntColumns)
vntRet = Application.Match(vntColumns(lngindex), Rows(1), 0)
If IsNumeric(vntRet) Then
vntAranged(lngindex + 1) = Cells(1, vntRet).Resize(Rows.Count, 1)
End If
Next
For lngindex = 1 To UBound(vntAranged, 1)
Cells(1, lngindex).Resize(UBound(vntAranged(lngindex)), 1) = vntAranged(lngindex)
Next
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Drücke
ALT + F8
, wähle das Makro rearangeColumns
aus und klicke auf Ausführen
.
Dieses Makro wird die Spaltenreihenfolge ändern und die Spalten gemäß der angegebenen Reihenfolge anordnen.
Häufige Fehler und Lösungen
Alternative Methoden
-
Manuelle Methode:
- Du kannst die Spalten auch manuell anordnen, indem Du die Spaltenüberschrift anklickst, sie ziehst und an die gewünschte Position ablegst. Diese Methode ist jedoch zeitaufwendig, besonders bei vielen Spalten.
-
Sortieren mit Filter:
- Du kannst die Daten auch mit der Filterfunktion sortieren. Wähle die Spalten aus und benutze die
Sortieren
-Option im Menüband, um die Spalten nach einer bestimmten Reihenfolge anzuordnen.
Praktische Beispiele
- Beispiel 1:
Angenommen, Du hast die Spalten "Name", "Alter", "Beruf", und Du möchtest sie in der Reihenfolge "Beruf", "Name", "Alter" anordnen. Verwende das oben stehende Makro und passe das
vntColumns
Array entsprechend an:
vntColumns = Array("Beruf", "Name", "Alter")
- Beispiel 2:
Wenn Du eine Excel-Datei mit doppelt vorhandenen Spalten hast, kannst Du den folgenden Code verwenden, um diese zu löschen, bevor Du die Spalten anordnest:
Sub removeDuplicates()
Dim CC As Long
CC = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
For i = CC To 2 Step -1
If Cells(1, i).Value = Cells(1, i - 1).Value Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub
Tipps für Profis
-
Verwendung von Arrays:
Das Arbeiten mit Arrays kann die Performance Deines Makros erheblich verbessern. Überlege, ob Du die Daten zuerst in ein Array einliest, bevor Du sie in die Excel-Tabelle schreibst.
-
Fehlerbehandlung:
Implementiere eine Fehlerbehandlung in Deinem Makro, um sicherzustellen, dass es bei unerwarteten Daten nicht abstürzt. Dies kannst Du mit On Error
-Anweisungen erreichen.
FAQ: Häufige Fragen
1. Wie kann ich mehrere Spalten gleichzeitig anordnen?
Du kannst im vntColumns
Array einfach die gewünschten Spaltenüberschriften angeben, um mehrere Spalten gleichzeitig neu anzuordnen.
2. Ist es möglich, das Makro für verschiedene Excel-Versionen zu verwenden?
Ja, das vorgestellte Makro sollte in den meisten modernen Excel-Versionen funktionieren, solange VBA unterstützt wird. Achte darauf, dass die Datentypen und Spaltenüberschriften übereinstimmen.