Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

How to sort worksheets alphanumerically in a workbook in Excel


View products that this article applies to.

Summary

Although there is no built-in tool to alphanumerically sort sheets, charts, Microsoft Excel 4.0 macro sheets, and dialog sheets in a workbook, you can do this with a macro.

Note In Microsoft Office Excel 2007 and in earlier versions of Microsoft Excel, you cannot sort macro sheets because they are displayed in the Visual Basic Editor.

↑ Back to the top


More information

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
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 = 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
'
' 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
      Next j
   Next i
End Sub
For more information about how to run this macro code in Excel, click the following article numbers to view the articles in the Microsoft Knowledge Base:
290140 How to run the sample code for the Office XP programs from Knowledge Base articles
212536 How to run sample code from Knowledge Base articles in Office 2000
173707 How to run sample code from Knowledge Base articles

↑ Back to the top


Keywords: KB812386, kbhowto, kbvba, kbautomation, kbprogramming, kbmacro, kbexpertisebeginner

↑ Back to the top

Article Info
Article ID : 812386
Revision : 5
Created on : 9/19/2011
Published on : 9/19/2011
Exists online : False
Views : 378