Excel-Tabellenblätter automatisch sortieren: Alphabetisch & Numerisch per VBA-Makro

Melden

Hier ist ein ausführliches Tutorial, wie du Excel-Tabellenblätter (Tabs) automatisch mithilfe eines VBA-Makros sortieren kannst – sowohl alphabetisch als auch numerisch.

Excel bietet standardmäßig keine Funktion, um die Registerkarten (Tabs) am unteren Bildschirmrand automatisch zu sortieren. Wenn du viele Blätter hast, kann das manuelle Verschieben sehr mühsam sein. Mit einem kleinen VBA-Skript lässt sich dieser Prozess jedoch automatisieren.


Schritt 1: Den VBA-Editor öffnen

Um ein Makro zu erstellen, musst du in die Entwicklungsumgebung von Excel wechseln:

  1. Öffne deine Excel-Arbeitsmappe.
  2. Drücke die Tastenkombination ALT + F11. Der VBA-Editor öffnet sich.
  3. Klicke im Menü oben auf Einfügen -> Modul. Ein leeres weißes Fenster erscheint.

Schritt 2: Den VBA-Code einfügen

Kopiere je nach Bedarf einen der folgenden Codes in das leere Modulfenster.

Option A: Alphabetische Sortierung (A-Z)

Dieser Code sortiert alle Blätter von A bis Z.

Sub SortiereBlaetterAlphabetisch()
    Dim i As Integer, j As Integer

    ' Schalte Bildschirmaktualisierung aus, um den Vorgang zu beschleunigen
    Application.ScreenUpdating = False

    ' Äußerer Loop: Gehe durch alle Blätter
    For i = 1 To Sheets.Count
        ' Innerer Loop: Vergleiche das aktuelle Blatt mit den restlichen
        For j = 1 To Sheets.Count - 1
            ' Wenn der Name des aktuellen Blattes alphabetisch größer ist als das nächste
            If UCase(Sheets(j).Name) > UCase(Sheets(j + 1).Name) Then
                ' Verschiebe das Blatt hinter das nächste Blatt
                Sheets(j).Move After:=Sheets(j + 1)
            End If
        Next j
    Next i

    Application.ScreenUpdating = True
    MsgBox "Tabellenblätter wurden alphabetisch sortiert!", vbInformation
End Sub

Option B: Numerische Sortierung (1, 2, 10...)

Wenn deine Blätter nur aus Zahlen bestehen (z. B. "1", "2", "10"), würde die alphabetische Sortierung "1, 10, 2" ergeben. Dieser Code behandelt die Namen als Zahlen:

Sub SortiereBlaetterNumerisch()
    Dim i As Integer, j As Integer

    Application.ScreenUpdating = False

    For i = 1 To Sheets.Count
        For j = 1 To Sheets.Count - 1
            ' Val() wandelt den Namen in eine Zahl um, damit 10 größer als 2 ist
            If Val(Sheets(j).Name) > Val(Sheets(j + 1).Name) Then
                Sheets(j).Move After:=Sheets(j + 1)
            End If
        Next j
    Next i

    Application.ScreenUpdating = True
    MsgBox "Tabellenblätter wurden numerisch sortiert!", vbInformation
End Sub

Schritt 3: Das Makro ausführen

Nachdem du den Code eingefügt hast, kannst du ihn wie folgt starten:

  1. Kehre mit ALT + Q oder durch Schließen des Fensters zu Excel zurück.
  2. Drücke ALT + F8, um das Makro-Fenster zu öffnen.
  3. Wähle das Makro aus (z. B. SortiereBlaetterAlphabetisch) und klicke auf Ausführen.

Wichtige Erklärungen zum Code

  • Application.ScreenUpdating = False: Dieser Befehl verhindert, dass das Flackern des Bildschirms während des Verschiebens angezeigt wird. Das macht das Makro deutlich schneller.
  • UCase(...): Wandelt die Namen intern in Großbuchstaben um, damit die Sortierung nicht zwischen Groß- und Kleinschreibung unterscheidet.
  • Sheets(j).Move After:=Sheets(j+1): Dies ist der Kernbefehl, der die Position der Reiter physisch verändert.
  • Bubble Sort: Die verwendete Logik ist ein einfacher "Bubble Sort"-Algorithmus. Er vergleicht immer zwei benachbarte Elemente und tauscht sie bei Bedarf aus.

Tipps für die Anwendung

  1. Arbeitsmappe speichern: Da VBA-Code nicht rückgängig gemacht werden kann (Strg+Z funktioniert hier nicht!), speichere deine Datei, bevor du das Makro ausführst.
  2. Dateiformat: Du musst die Datei als Excel-Arbeitsmappe mit Makros (.xlsm) speichern, damit der Code erhalten bleibt.
  3. Absteigende Sortierung: Wenn du von Z bis A sortieren möchtest, ändere im Code einfach das Größer-als-Zeichen (>) in ein Kleiner-als-Zeichen (<).

Bonus: Schaltfläche für das Makro erstellen

Damit du nicht jedes Mal den Code-Editor oder das Makro-Menü öffnen musst, kannst du eine Schaltfläche in dein Tabellenblatt einfügen:

  1. Gehe zum Reiter Entwicklertools (falls nicht sichtbar: Rechtsklick auf das Menüband -> Menüband anpassen -> Haken bei Entwicklertools setzen).
  2. Klicke auf Einfügen -> Schaltfläche (Formularsteuerelement).
  3. Zeichne die Schaltfläche auf das Blatt und weise ihr das Makro zu. Nun reicht ein Klick zum Sortieren!
0