Private Sub Sort_Active_Book()
Dim I As Integer
Dim J As Integer
Dim iAnswer As VbMsgBoxResult
'
' Prompt the user as which direction they wish to
' sort the worksheets.
'
iAnswer = vbYes
'iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
& "Clicking No will sort in Descending Order", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
For I = 1 To Sheets.Count
For J = 1 To Sheets.Count - 1
' Exclude certain sheets from Sorting
If InStr(1, LCase(Sheets(J).Name), "filtered from") = 0 Then
' If the answer is Yes, then sort in ascending order.
'
If iAnswer = vbYes Then
If UCase$(Sheets(J).Name) > UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
' If the answer is No, then sort in descending order.
'
ElseIf iAnswer = vbNo Then
If UCase$(Sheets(J).Name) < UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
End If
End If
Next J
Next I
End Sub
Private Sub Sort_Active_Book()
Dim I As Integer
Dim J As Integer
Dim iAnswer As VbMsgBoxResult
'
' Prompt the user as which direction they wish to
' sort the worksheets.
'
iAnswer = vbYes
'iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
& "Clicking No will sort in Descending Order", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
For I = 1 To Sheets.Count
For J = 1 To Sheets.Count - 1
' Exclude certain sheets from Sorting
If InStr(1, LCase(Sheets(J).Name), "filtered from") = 0 Or _
LCase(Sheets(J).Name) <> "run" Then
' If the answer is Yes, then sort in ascending order.
'
If iAnswer = vbYes Then
If UCase$(Sheets(J).Name) > UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
' If the answer is No, then sort in descending order.
'
ElseIf iAnswer = vbNo Then
If UCase$(Sheets(J).Name) < UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
End If
End If
Next J
Next I
End Sub
Regards
If InStr(1, LCase(Sheets(J).Name), "filtered from") = 0 And InStr(1, LCase(Sheets(J).Name), "run") = 0 Then
If InStr(1, Sheets(J).Name, "filtered from", vbTextCompare) = 0 And InStr(1, Sheets(J).Name, "Run", vbTextCompare) = 0 Then
Private Sub Sort_Active_Book()
Dim I As Integer
Dim J As Integer
Dim iAnswer As VbMsgBoxResult
'
' Prompt the user as which direction they wish to
' sort the worksheets.
'
If UCase$(Left$(Activeworkbook.name, 3)) = "RUN" then exit sub
iAnswer = vbYes
'iAnswer = MsgBox("Sort Sheets in Ascending Order?" & Chr(10) _
& "Clicking No will sort in Descending Order", _
vbYesNoCancel + vbQuestion + vbDefaultButton1, "Sort Worksheets")
For I = 1 To Sheets.Count
For J = 1 To Sheets.Count - 1
' Exclude certain sheets from Sorting
If InStr(1, LCase(Sheets(J).Name), "filtered from") = 0 Then
' If the answer is Yes, then sort in ascending order.
'
If iAnswer = vbYes Then
If UCase$(Sheets(J).Name) > UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
' If the answer is No, then sort in descending order.
'
ElseIf iAnswer = vbNo Then
If UCase$(Sheets(J).Name) < UCase$(Sheets(J + 1).Name) Then
Sheets(J).Move after:=Sheets(J + 1)
End If
End If
End If
Next J
Next I
End Sub
Open in new window
To this...
Open in new window
Saurabh...