VBA para ordenar tabla en Excel (4 métodos)

  • Compartir Este
Hugh West

Aplicación de Macro VBA es el método más eficaz, rápido y seguro para ejecutar cualquier operación en Excel. En este artículo, le mostraremos cómo ordenar la tabla en Excel con VBA .

Descargar el cuaderno de ejercicios

Puede descargar gratuitamente el libro de prácticas en Excel desde aquí.

Ordenar tabla con VBA.xlsm

Cosas que debe saber antes de implementar VBA para ordenar tabla en Excel

Hay algunos parámetros que debe utilizar con frecuencia cuando trabaje con la aplicación Ordenar método de VBA Así que aquí vamos a discutir algunos de los parámetros para que te familiarices mientras escribes el código.

Parámetro Obligatorio/ Facultativo Tipo de datos Descripción
Clave Opcional Variante Especifica el rango o la columna cuyos valores deben ordenarse.
Pida Opcional XlSortOrder Especifica el orden en que se realizará la clasificación.
  • xlAscending = Para ordenar en orden ascendente.
  • xlDescendente = Para ordenar en orden descendente.
Cabecera Opcional XlYesNoGuess Especifica si la primera fila contiene cabeceras o no.
  • xlNo = Cuando la columna no tiene cabeceras; Valor por defecto.
  • xlSí = Cuando las columnas tienen cabeceras.
  • xlAdivina = Para que Excel determine las cabeceras.

4 Métodos en la aplicación de VBA para ordenar tabla en Excel

Esta sección le mostrará cómo ordenar tablas Excel considerando valor, colores, iconos y varias columnas con VBA código.

1. Incrustar VBA para ordenar tabla por valor en Excel

Considerando el siguiente ejemplo ordenar esta tabla por los valores presente en el Mark en orden descendente.

Pasos:

  • Pulse Alt + F11 en su teclado o vaya a la pestaña Desarrollador -> Visual Basic para abrir Editor de Visual Basic .

  • En la ventana de código emergente, en la barra de menús, haga clic en Insertar -> Módulo .

  • Copie el siguiente código y péguelo en la ventana de código.
 Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub 

Su código ya está listo para ejecutarse.

Toma,

  • OrdenarTBL → Se ha especificado el nombre de la tabla.
  • SortTBL[Marcas] -> Especifica el nombre de la columna de la tabla a ordenar.
  • Clave1:=iColumna → Especifica el rango de columnas para que el código sepa qué columna de la tabla ordenar.
  • Orden1:=xlDescendente → Especificado el orden como xlDescendente para ordenar la columna en orden descendente. Si desea ordenar la columna en orden ascendente, escriba xlAscending en su lugar.
  • Cabecera:= xlSí → Como la columna de esta tabla tiene una cabecera por lo que la especificamos con el carácter xlSí opción.

  • Pulse F5 en el teclado o, en la barra de menús, seleccione Run -> Run Sub/UserForm También puede hacer clic en el botón pequeño icono Play en la barra de submenú para ejecutar la macro.

Verá que la columna de su tabla es ahora ordenados en orden descendente .

Read More: Cómo ordenar datos por valor en Excel (5 métodos sencillos)

2. Insertar Macro VBA para Ordenar Tabla por Múltiples Columnas

También puede ordenar una tabla por varias columnas en Excel con VBA macro.

A partir de la tabla anterior, ordenaremos las columnas Nombre y Departamento en orden ascendente.

Pasos:

  • De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En la ventana de código, copia el siguiente código y pégalo.
 Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub 

Su código ya está listo para ejecutarse.

Toma,

  • TableValue → Se ha especificado el nombre de la tabla.
  • TablaValor[Nombre] -> Especifica el nombre de la primera columna de la tabla a ordenar.
  • TablaValor[Departamento] -> Especifica el nombre de la segunda columna de la tabla a ordenar.
  • Clave1:=iColumna1 → Especifica el rango de columnas para que el código sepa que hay que ordenar la primera columna de la tabla.
  • Clave1:=iColumna2 → Especifica el rango de columnas para que el código sepa que hay que ordenar la segunda columna de la tabla.
  • Orden1:=xlAscendente → Especificado el orden como xlAscending para ordenar la columna en orden descendente. Si desea ordenar la columna en orden descendente, escriba xlDescendente en su lugar.
  • Cabecera:= xlSí → Como las columnas de esta tabla tienen cabeceras por lo que la especificamos con el atributo xlSí opción.

  • Ejecutar este código y obtendrá los dos columnas de la tabla ordenadas en orden ascendente.

Más información: Cómo ordenar automáticamente varias columnas en Excel (3 maneras)

Lecturas similares

  • Cómo Ordenar Lista Única en Excel (10 Métodos Útiles)
  • Ordenar Matriz con Excel VBA (Orden Ascendente y Descendente)
  • Cómo ordenar y filtrar datos en Excel (una guía completa)
  • Excel Auto Ordenar Cuando Cambian los Datos (9 Ejemplos)
  • Ordenación aleatoria en Excel (Fórmulas + VBA)

3. Implementar Macro para Ordenar Tabla por Color de Celda en Excel

También puede ordenar una tabla según el color de la celda que contiene.

Con la tabla anterior como ejemplo, le mostraremos cómo ordenarla en función de los colores que contiene.

Pasos:

  • Como se ha demostrado anteriormente, las Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En la ventana de código, copia el siguiente código y pégalo.
 Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub 

Su código ya está listo para ejecutarse.

Aquí el RGB códigos que proporcionamos, puede encontrarlo o cualquier otro RGB código que desee siguiendo el gif que se indica a continuación.

  • Basta con hacer clic en el botón celda de color .
  • En el Inicio haga clic en flecha junto a Color de relleno seleccione Más colores Verá el RGB códigos en el A medida de la pestaña aparecido Colores emergente.

  • Ejecutar este código y su tabla será ordenados por colores .

Más información: Cómo Ordenar por Color en Excel (4 Criterios)

4. Aplicar VBA para Ordenar Tabla Excel por Icono

Supongamos que la tabla del conjunto de datos tiene iconos para una mejor legibilidad. Puede ordenar los tabla basada en los iconos en Excel con VBA macro.

Fíjese en el conjunto de datos anterior. Aquí la tabla tiene iconos junto a los valores numéricos del Marcas columnas para que podamos entender qué alumno tiene resultados buenos, malos o medios.

Tenga en cuenta que, si no sabe cómo puede insertar un icono dentro de una celda, puede hacerlo simplemente con la función Formato condicional de Excel.

  • Seleccione toda la gama o columna.
  • Ir a Formato condicional -> Conjuntos de iconos A continuación, seleccione los conjuntos de iconos que desee.

Pasos para ordenar una tabla por iconos se indican a continuación.

Pasos:

  • Abrir Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
  • En la ventana de código, copia el siguiente código y pégalo.
 Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4)   .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub 

Su código ya está listo para ejecutarse.

Toma,

  • xl5Flechas -Elegimos el juego de 5 flechas de la opción en el Formato condicional .
  • Artículo (1) -> Especificado el primero tipo de icono de flecha.
  • Artículo (2) -> Especificado el segundo tipo de icono de flecha.
  • Artículo (3) -> Especificado el tercera tipo de icono de flecha.
  • Artículo (4) -> Especificado el cuarto tipo de icono de flecha.
  • Artículo (5) -> Especificado el quinto tipo de icono de flecha.

  • Ejecutar este código y la tabla será ordenados en función de los iconos .

Read More: Cómo Auto Ordenar Tabla en Excel (5 Métodos)

Conclusión

Este artículo muestra cómo ordenar la tabla en Excel VBA Espero que este artículo le haya sido muy útil. No dude en preguntar si tiene alguna duda sobre el tema.

Hugh West es un capacitador y analista de Excel altamente experimentado con más de 10 años de experiencia en la industria. Tiene una Licenciatura en Contabilidad y Finanzas y una Maestría en Administración de Empresas. Hugh tiene una pasión por la enseñanza y ha desarrollado un enfoque de enseñanza único que es fácil de seguir y comprender. Su conocimiento experto de Excel ha ayudado a miles de estudiantes y profesionales en todo el mundo a mejorar sus habilidades y sobresalir en sus carreras. A través de su blog, Hugh comparte su conocimiento con el mundo, ofreciendo tutoriales gratuitos de Excel y capacitación en línea para ayudar a las personas y empresas a alcanzar su máximo potencial.