Sub SheetsSort()
Dim i As Integer, j As Integer, iSheets As Integer
Application.ScreenUpdating = False
iSheets = Sheets.Count
For i = 1 To iSheets - 1
For j = i + 1 To iSheets
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
Viel Spaß damit! und Grüße
d'r Bastler von den VBAsteleien.de Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Sheets alphanumerisch zu sortieren ist ja nett, aber vielleicht hatte die vorherige Sortierung auch ihren Sinn ? Mit folgendem Snippet (das in ein Allg. Modul gehört) genügt ein Klick für sortiert und vorherige Reihenfolge.
Option Explicit
Public col As Collection, isSorted As Boolean
Sub SheetsManager()
If isSorted = True Then
RestoreSequence
Else
SortSheets
End If
End Sub
Sub SortSheets()
Dim app As Application
Dim i As Integer, j As Integer, iSheets As Integer
Dim sName As String, sTab As String, sNext As String
Set app = Application: Set col = New Collection
'Aktuelle Sequenz in col schreiben
For i = 1 To Sheets.Count
sName = Sheets(i).Name
col.Add sName
Next i
'Sheets alphanumerisch nach Tabs sortieren
app.ScreenUpdating = False
iSheets = Sheets.Count
For i = 1 To iSheets - 1
For j = i + 1 To iSheets
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
app.ScreenUpdating = True
isSorted = True
MsgBox "Sortiert!", , isSorted
End Sub
Sub RestoreSequence()
Dim app As Application
Dim i As Integer
Dim sTab As String, sNext As String
Set app = Application
'Sequenz wiederherstellen, nach col sortieren
app.ScreenUpdating = False
For i = 1 To col.Count - 1
sTab = col.Item(i)
sNext = col.Item(i + 1)
Sheets(sNext).Move after:=Sheets(sTab)
Next i
app.ScreenUpdating = True
isSorted = False
MsgBox "Zurückgesetzt!", , isSorted
End Sub
Viel Spaß damit! und schöne Grüße
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag: