Try:
Sub SortSheets()
Dim I As Integer, ii As Integer
Dim ShtName As String
If ActiveWorkbook.Sheets.count > 1 Then
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Sheets("SheetNames").Visible = True
Sheets("SheetNames").Delete
On Error GoTo 0
Sheets.Add().Name = "SheetNames"
Application.DisplayAlerts = True
With ThisWorkbook.Sheets("SheetNames")
.Visible = xlSheetVeryHidden
.Columns(20).Clear
For I = 1 To ActiveWorkbook.Sheets.count
If Sheets(I).Name <> "SheetNames" Then
.Cells(I, 20) = Sheets(I).Name
End If
Next
.Columns(20).Sort Key1:=.Cells(1, 20), Order1:=xlAscending
For ii = I - 2 To 1 Step -1
ShtName = .Cells(ii, 20)
ActiveWorkbook.Sheets(ShtName).Move Before:=ActiveWorkbook.Sheets(1)
Next
End With
End If
Application.ScreenUpdating = True
End Sub
Bookmarks