En este artículo, proporcionamos detalles sobre cómo ordenar las hojas de trabajo en el libro de trabajo en orden ascendente o descendente, según el nombre de la hoja de trabajo.

En el libro de trabajo adjunto, hay dos módulos: – El Módulo1 contiene la macro «Ordenar hojas de trabajo» que se asigna al botón «Enviar» en la hoja «Macro».

Esta macro ordena todas las hojas de trabajo excepto la primera hoja de trabajo que es la hoja principal denominada «Macro».

Cuando el usuario hace clic en el botón «Enviar», todas las hojas después de la hoja «Macro» se ordenarán en orden ascendente o descendente según lo elija el usuario en el cuadro combinado.

ArrowSortingOrder

Module2 contiene dos macros «AscendingSortOfWorksheets» y «DecendingSortOfWorksheets». Al ejecutar la macro «AscendingSortOfWorksheets», ordenará todas las hojas de trabajo presentes en el libro de trabajo en orden ascendente. Al ejecutar la macro «DecendingSortOfWorksheets», ordenará todas las hojas de trabajo presentes en el libro de trabajo en orden descendente.

Explicación lógica

El algoritmo de clasificación de burbujas se utiliza para clasificar las hojas de trabajo en el libro.

El algoritmo de clasificación de burbujas compara cada elemento de la matriz con otro elemento de la matriz y los intercambia según se ordene en orden ascendente o descendente. En cada paso, burbujeará el valor más pequeño o más grande en la parte superior de la matriz. El algoritmo se repite hasta que se ordenan todos los elementos.

En este artículo, nuestro objetivo es ordenar las hojas de trabajo del libro por su nombre. El libro de trabajo que estamos usando consta de diferentes hojas de trabajo con nombres como Panel financiero, Recursos humanos y Panel de ventas.

ArrowRawData

Para lograr este objetivo, hemos utilizado el algoritmo de clasificación de burbujas para clasificar las hojas de trabajo.

Explicación del código

Macro SortWorksheets

Esta macro se ejecutará cuando el usuario haga clic en el botón enviar. Esta macro ordenará todas las hojas de trabajo en el libro de trabajo por sus nombres, excepto la primera hoja de trabajo en el libro de trabajo. Dependiendo del valor seleccionado por el usuario en el cuadro combinado, ordenará las hojas de trabajo en orden ascendente o descendente.

Para agregar un cuadro combinado, siga los pasos a continuación: -. Vaya a la pestaña Desarrollador> Haga clic en Insertar> Haga clic en el icono del cuadro combinado debajo del control de formulario

ArrowInsertingCombobox

  1. Haga clic derecho en el cuadro combinado y haga clic en control de formato.

ArrowFormattingControl

  1. Vaya a la pestaña de control, asigne el elemento y vincule el cuadro combinado con la celda XFC1.

ArrowCellLink

ComboBoxValue = Rango («XFC1»). El cuadro combinado de valor en la hoja de trabajo «Macro» está vinculado con la celda XFC1. Entonces, para obtener valor de la celda XFC1, se usa la variable ComboBoxValue.

For i = 2 To SCount – 1 FOR bucle comienza con la variable i, el valor comienza desde 2 ya que queremos excluir la primera hoja de trabajo del libro de trabajo de la clasificación.

Si ComboBoxValue = 1, entonces la condición IF se usa para verificar si ordenar en orden ascendente o descendente. SI el valor de ComboBoxValue es 1, ordene en orden ascendente o en orden descendente.

Hojas de trabajo ordenadas en orden ascendente

ArrowAscendingOrder

Hojas de trabajo ordenadas en orden descendente

ArrowDescendingOrder

AscendingSortOfWorksheets y DecendingSortOfWorksheets

Las macros AscendingSortOfWorksheets y DecendingSortOfWorksheets se pueden ejecutar presionando la tecla de acceso directo Alt + F8 o Ir a la pestaña Desarrollador> Hacer clic en Macro> seleccionar la macro y hacer clic en Ejecutar. Ordenarán todas las hojas de trabajo presentes dentro del libro de trabajo. Estas macros también se pueden ejecutar en otros libros de trabajo.

Hojas de trabajo ordenadas después de ejecutar la macro AscendingSortOfWorksheets

ArrowAscendingCompleteSort

Hojas de trabajo ordenadas en orden ascendente DecendingSortOfWorksheets macro

ArrowDescendingCompleteSort

Siga a continuación el código

Sub AscendingSortOfWorksheets()

'Sort worksheets in a workbook in ascending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name < Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Sub DecendingSortOfWorksheets()

'Sort worksheets in a workbook in descending order

Dim SCount, i, j As Integer

'For disabling screen updates

Application.ScreenUpdating = False

'Getting total no. of worsheets in workbook

SCount = Worksheets.Count

'Checking condition whether count of worksheets is greater than 1, If count is one then exit the procedure

If SCount = 1 Then Exit Sub

'Using Bubble sort as sorting algorithm

'Looping through all worksheets

For i = 1 To SCount - 1

'Making comparison of selected sheet name with other sheets for moving selected sheet to appropriate position

For j = i + 1 To SCount

If Worksheets(j).Name > Worksheets(i).Name Then

Worksheets(j).Move Before:=Worksheets(i)

End If

Next j

Next i

End Sub

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]