Hi
Here's some code:
Sub SortSheets()
Dim i As Integer, ii As Integer
Dim ShtName As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Sheets.Add().Name = "SortingWorsheet"
On Error GoTo 0
If ActiveSheet.Name <> "SortingWorsheet" Then ActiveSheet.Delete
With ThisWorkbook.Sheets("SortingWorsheet")
.Columns(20).Clear
For i = 1 To ActiveWorkbook.Sheets.Count
.Cells(i, 20) = Sheets(i).Name
Next
.Columns(20).Sort Key1:=.Cells(1, 20), Order1:=xlAscending
For ii = i - 1 To 1 Step -1
ShtName = .Cells(ii, 20)
ActiveWorkbook.Sheets(ShtName).Move Before:=ActiveWorkbook.Sheets(1)
Next
End With
Sheets("SortingWorsheet").Delete
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub