Cómo ordenar hojas de trabajo en Excel usando VBA (alfabéticamente)

Si trabaja con muchas hojas de trabajo en Excel, sabrá que su gestión puede convertirse en un problema.

Una vez que tenga más de un par de hojas de trabajo, debe organizarlas manualmente.

Qué fácil sería si hubiera una forma de ordenar rápidamente las hojas de trabajo en Excel.

Si bien no hay una forma de función incorporada para hacer esto, se puede hacer (fácilmente) usando VBA.

En este tutorial, le daré el código y los pasos exactos que debe seguir para ordenar las hojas de trabajo en Excel.

Puede modificar el código para ordenar las hojas de trabajo en orden ascendente o descendente.

Código VBA para ordenar hojas de trabajo en Excel

A continuación se muestra el código que ordenará las hojas de trabajo en orden alfabético tan pronto como lo ejecute.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount como entero, i como entero, j como entero ShCount = Sheets.Count para i = 1 para ShCount - 1 para j = i + 1 para ShCount si UCase (Sheets (j). Name) <UCase (Sheets (i) .Name) Luego Sheets (j) .Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub

Lo anterior es un código simple que utiliza los bucles For Next para analizar cada hoja de trabajo con todas las hojas de trabajo.

Compara el nombre de una hoja de trabajo con todas las hojas de trabajo y la mueve según su nombre en orden alfabético.

Luego pasa a la siguiente hoja de trabajo y luego la compara con todas las hojas de trabajo.

Este proceso se repite para todas las hojas de trabajo y el resultado final es un orden de hojas de trabajo ordenadas en orden alfabético.

Algunas cosas importantes que debe saber sobre este código:

  1. La función UCase se usa para asegurarse de que las minúsculas y las mayúsculas no se traten de manera diferente.
  2. El valor de Application.ScreenUpdating se establece en False al principio del código y se cambia a True al final del código. Esto garantiza que, mientras se ejecuta el código, no lo verá en la pantalla. Esto también ayuda a acelerar la ejecución del código.

Si desea ordenar las hojas de trabajo en orden descendente, solo necesita cambiar el signo (mayor que).

El siguiente código ordenaría las hojas de trabajo en orden descendente:

'Este código ordenará las hojas de trabajo alfabéticamente Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount Si UCase (Sheets (j) .Name)> UCase (Sheets (i) .Name) Luego Sheets (j) .Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub

También puede darle al usuario la opción de elegir si quiere ordenar en orden ascendente / descendente.

El siguiente código mostraría un cuadro de mensaje y el usuario puede seleccionar el orden para ordenar.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount como entero, i como entero, j como entero Dim SortOrder como VbMsgBoxResult SortOrder = MsgBox ("Seleccione Sí para orden ascendente y No para orden descendente", vbYesNoCancel) ShCount para = Sheets.Count i = 1 Para ShCount - 1 Para j = i + 1 Para ShCount Si SortOrder = vbYes Then If UCase (Sheets (j) .Name) UCase (Sheets (i) .Name) Then Sheets (j) .Move before: = Sheets (i) End If End If Next j Next i Application.ScreenUpdating = True End Sub

El código anterior cuando se ejecuta muestra un mensaje como se muestra a continuación. Ordena según la selección (Sí para ascendente y No para descendente).

En caso de que haga clic en Cancelar, el código se detiene y no sucede nada.

Nota: La clasificación no se puede deshacer. En caso de que también desee mantener el orden original, haga una copia del libro de trabajo.

Una palabra de precaución: El código anterior funciona en la mayoría de los casos. Un área en la que le dará un resultado incorrecto es cuando tiene nombres de pestañas como Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Lo ideal sería que todas las pestañas de los mismos años estuvieran juntas, pero no se hará, ya que Q12021-2022 se colocará antes de Q22021-2022.

Dónde poner el código VBA

Excel tiene un backend de VBA llamado editor de VBA.

Debe copiar y pegar el código VBA en la ventana de código del módulo VB Editor.

Estos son los pasos para hacer esto:

  1. Haga clic en la pestaña "Desarrollador". (¿No puede ver la pestaña de desarrollador? Haga clic aquí para obtener información sobre cómo obtenerla).
  2. Haga clic en la opción Visual Basic. Esto abrirá el editor de VB en el backend.
  3. En el panel Explorador de proyectos en el Editor de VB, haga clic con el botón derecho en cualquier objeto del libro en el que desea insertar el código. (Si no ve el Explorador de proyectos, vaya a la pestaña "Ver" y haga clic en "Explorador de proyectos").
  4. Vaya a Insertar y haga clic en Módulo. Esto insertará un objeto de módulo para su libro de trabajo.
  5. Copie y pegue el código en la ventana del módulo.

Cómo ejecutar el código VBA

En Excel, hay varias formas de ejecutar el código VBA.

Puede ejecutar el código directamente desde el Editor de Visual Basic (también llamado Editor VB).

Puede insertar un botón o una forma en la hoja de trabajo y asignarle la macro. Al hacer clic en el botón, se ejecutará la macro al instante.

También puede agregar la macro a la barra de herramientas de acceso rápido (QAT). Ahora, cada vez que tenga que ordenar las pestañas de la hoja de trabajo, puede hacer clic en el icono del código de macro en el QAT.

Puede leer todo sobre la ejecución de la macro aquí: Cómo ejecutar una macro en Excel (o vea el video a continuación).
También le pueden gustar los siguientes tutoriales de Excel / VBA:

  • Cómo ordenar datos en Excel usando VBA.
  • Ordene automáticamente los datos en orden alfabético usando la fórmula.
  • Cómo hacer una clasificación de datos de varios niveles en Excel.
  • Introducción a las opciones de clasificación de datos de Excel.
  • Autofiltro Excel VBA: una guía completa con ejemplos
  • Cómo agrupar hojas de trabajo en Excel
  • Cómo voltear datos en Excel

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave