Si te refieres a ordenar las hojas según su nombre entonces esto te servirá: Este código utulizará la columna A de la Hoja1 para albergar los nombres de las hojas, ordenarlos alfabéticamente y luego mover las hojas a su lugar correspondiente: Private Sub CommandButton1_Click() Dim Hoja As Worksheet Dim AgregarNombre As Integer Dim NumeroHojas As Integer Dim UltimaHoja As String Dim NombreHoja As String NumeroHojas = ThisWorkbook.Worksheets.Count AgregarNombre = 0 Hoja1.Activate Range("A:A").ClearContents For Each Hoja In ThisWorkbook.Worksheets AgregarNombre = AgregarNombre + 1 Hoja1.Cells(AgregarNombre, 1) = Hoja.Name Next Hoja Hoja1.Range(Cells(1, 1), Cells(NumeroHojas, 1)).Select Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom UltimaHoja = Hoja1.Cells(NumeroHojas, 1) For AgregarNombre = 1 To NumeroHojas NombreHoja = Hoja1.Cells(AgregarNombre, 1) If NombreHoja <> UltimaHoja Then Worksheets(NombreHoja).Select Worksheets(NombreHoja).Move Before:=Worksheets(UltimaHoja) End If Next AgregarNombre End Sub Si no es lo que necesitas escribe de nuevo.