Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.misc
|
|||
|
|||
Sort tabs
Is there a way to sort tabs in the worksheet? I've been manually dragging the
tabs to put them in the alphabetical order, but if someone can advise a way, that would be great. Thanks |
#2
Posted to microsoft.public.excel.misc
|
|||
|
|||
Sort tabs
Chip Pearson has a macro for sorting worksheets.
http://www.cpearson.com/excel/sortws.htm -- Jim "Stan" wrote in message ... | Is there a way to sort tabs in the worksheet? I've been manually dragging the | tabs to put them in the alphabetical order, but if someone can advise a way, | that would be great. | Thanks |
#3
Posted to microsoft.public.excel.misc
|
|||
|
|||
Sort tabs
this VBA code should help you achieve what you want. Sub SortWorksheets() Dim N As Integer Dim M As Integer Dim FirstWSToSort As Integer Dim LastWSToSort As Integer Dim SortDescending As Boolean SortDescending = False If ActiveWindow.SelectedSheets.Count = 1 Then FirstWSToSort = 1 LastWSToSort = Worksheets.Count Else With ActiveWindow.SelectedSheets For N = 2 To .Count If .Item(N - 1).Index < .Item(N).Index - 1 Then MsgBox "You cannot sort non-adjacent sheets" Exit Sub End If Next N FirstWSToSort = .Item(1).Index LastWSToSort = .Item(.Count).Index End With End If For M = FirstWSToSort To LastWSToSort For N = M To LastWSToSort If SortDescending = True Then If UCase(Worksheets(N).Name) UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If Else If UCase(Worksheets(N).Name) < UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If End If Next N Next M End Sub -- NickG ------------------------------------------------------------------------ NickG's Profile: http://www.excelforum.com/member.php...o&userid=33865 View this thread: http://www.excelforum.com/showthread...hreadid=536411 |
#4
Posted to microsoft.public.excel.misc
|
|||
|
|||
Sort tabs
this VBA code should help you achieve what you want. Sub SortWorksheets() Dim N As Integer Dim M As Integer Dim FirstWSToSort As Integer Dim LastWSToSort As Integer Dim SortDescending As Boolean SortDescending = False If ActiveWindow.SelectedSheets.Count = 1 Then FirstWSToSort = 1 LastWSToSort = Worksheets.Count Else With ActiveWindow.SelectedSheets For N = 2 To .Count If .Item(N - 1).Index < .Item(N).Index - 1 Then MsgBox "You cannot sort non-adjacent sheets" Exit Sub End If Next N FirstWSToSort = .Item(1).Index LastWSToSort = .Item(.Count).Index End With End If For M = FirstWSToSort To LastWSToSort For N = M To LastWSToSort If SortDescending = True Then If UCase(Worksheets(N).Name) UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If Else If UCase(Worksheets(N).Name) < UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If End If Next N Next M End Sub -- NickG ------------------------------------------------------------------------ NickG's Profile: http://www.excelforum.com/member.php...o&userid=33865 View this thread: http://www.excelforum.com/showthread...hreadid=536411 |
#5
Posted to microsoft.public.excel.misc
|
|||
|
|||
Sort tabs
If you're going to take verbatim code from my site, I would
appreciate a reference to the page. www.cpearson.com/excel/sortws.htm -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "NickG" wrote in message ... this VBA code should help you achieve what you want. Sub SortWorksheets() Dim N As Integer Dim M As Integer Dim FirstWSToSort As Integer Dim LastWSToSort As Integer Dim SortDescending As Boolean SortDescending = False If ActiveWindow.SelectedSheets.Count = 1 Then FirstWSToSort = 1 LastWSToSort = Worksheets.Count Else With ActiveWindow.SelectedSheets For N = 2 To .Count If .Item(N - 1).Index < .Item(N).Index - 1 Then MsgBox "You cannot sort non-adjacent sheets" Exit Sub End If Next N FirstWSToSort = .Item(1).Index LastWSToSort = .Item(.Count).Index End With End If For M = FirstWSToSort To LastWSToSort For N = M To LastWSToSort If SortDescending = True Then If UCase(Worksheets(N).Name) UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If Else If UCase(Worksheets(N).Name) < UCase(Worksheets(M).Name) Then Worksheets(N).Move Befo=Worksheets(M) End If End If Next N Next M End Sub -- NickG ------------------------------------------------------------------------ NickG's Profile: http://www.excelforum.com/member.php...o&userid=33865 View this thread: http://www.excelforum.com/showthread...hreadid=536411 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
sort tabs in a workbook other than one at a time with move or cop. | Excel Worksheet Functions | |||
Select rows and sort based on type | Excel Discussion (Misc queries) | |||
sort sheet tabs in Excel | Excel Worksheet Functions | |||
Can I sort Excel sheet tabs alphabetically? | Excel Discussion (Misc queries) | |||
sort tabs in a workbook other than one at a time with move or cop. | Excel Worksheet Functions |