Arbeitsblätter (Sheets) sortieren (Excel VBA)

Immer wieder kann es vorkommen, dass man alle Arbeitsblätter in einer Excel-Arbeitsmappe alphabetisch aufsteigend oder absteigend sortieren muss.

Folgender Code erledigt dies in Windeseile. Einfach aufrufen! Fertig!

Ohne Parameter werden die Arbeitsblätter aufsteigend sortiert. Mit dem optionalen Parameter kann man die Arbeitsblätter auch absteigend sortieren lassen (also durch den Aufruf von „SortSheets False“)

Sub SortSheets(Optional bSortASC As Boolean = True)

    Dim i As Integer
    Dim j As Integer
    
    For i = 1 To Sheets.Count
        For j = 1 To Sheets.Count - 1
            If bSortASC Then
                If LCase(Sheets(j).Name) > LCase(Sheets(j + 1).Name) Then
                    Sheets(j).Move After:=Sheets(j + 1)
                End If
            Else
                If LCase(Sheets(j).Name) < LCase(Sheets(j + 1).Name) Then
                    Sheets(j + 1).Move Before:=Sheets(j)
                End If
            End If
        Next j
    Next i
    
End Sub
Dieser Beitrag wurde unter Excel, VBA abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.