Macro para ordenar datos automáticamente en Excel

Macro para ordenar datos automáticamente en Excel

¿Cómo crear una macro para ordenar datos automáticamente en Excel?

Bien, lo primero que necesitamos es un rango de datos ya creado, para este ejemplo usaremos el siguiente rango de datos sin formato:

Macro para ordenar datos automáticamente en Excel

Crear la tabla

  • Haz un clic en cualquier celda de la tabla.
  • Presiona las teclas CTRL + T
  • En la ventana que aparece marca la casilla que dice: la tabla tiene encabezados y clic en el botón Aceptar.
  • Selecciona toda la tabla, ir a la pestaña Datos y desactivamos el filtro de los encabezados haciendo un clic en el ícono de filtro.

Grabar macro para ordenar datos

  • Haz un clic fuera de la tabla.
  • Ir a la pestaña Programador o Desarrollador.
  • Clic en el ícono de Grabar macro.
  • En la ventana que aparece, en la parte de nombre de la macro escribimos: Ordenar y clic en Aceptar.
  • A partir de este momento la macro comienza a grabar todo lo que hacemos en nuestra hoja de cálculo.
  • Selecciona toda la tabla, ir a la pestaña de Datos, clic en el ícono de Ordenar y en la sección donde dice Ordenar por, elegimos Apellido Paterno, del mismo modo verificamos que en la sección Orden esté seleccionado la opción A a Z, ya que queremos ordenar los apellidos de forma alfabética comenzando por la letra A.
  • Clic en el botón Aceptar.
  • Hacemos un clic en cualquier parte de la tabla.
  • Ir a la pestaña Programador y clic en Detener macro.

Llamar a la macro en VB

  • Presiona las teclas ALT + F11 para abrir Visual Basic en Excel
  • En el caso que no recuerdes el nombre que le pusiste a la macro, haz un doble clic en Módulo para ver el nombre de la macro creada.
  • Doble clic en Hoja1
  • En la ventana que aparece en el área de trabajo, elegimos en la primera lista desplegable la opción de Worksheet y en la segunda lista desplegable la opción de Change.
  • Para llamar a la macro debemos escribir el siguiente código dentro de la función:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 Then
Call Ordenar
End If
End Sub

Lo que hace el código es lo siguiente:

En nuestra tabla tenemos 4 columnas, Nombre, Apellido Paterno, Apellido Materno y Edad, lo que queremos es que nuestra tabla se ordene después de ingresar el último dato que sería la edad.

En este caso Edad se encuentra en la última columna, que sería la columna número 4, entonces en nuestro código asignamos que, después de introducir la edad de la persona, llamamos a la función Ordenar.

De esta manera ordenamos los datos de cada persona una vez se haya culminado de ingresar sus 4 datos.

Para verificar si esto funciona correctamente:

  • Cierra la ventana de Visual Basic
  • En la última fila de la tabla escribe los datos de una persona
  • Una vez hayas terminado de digitar la edad, presiona la tecla ENTER
  • Notarás que la tabla se ha ordenado.

Para finalizar, debemos guardar el libro habilitado para macros, para ello, sigue los siguientes pasos:

  • Ir a la pestaña Archivo
  • Clic en Guardar como
  • Elige la ubicación donde guardarás tu libro de Excel
  • En la ventana de Guardar Como, escribe el nombre con el que guardarás el libro y en la parte de Tipo, haz un clic en la lista desplegable y selecciona la opción de libro de Excel habilitado para macros.
  • Finalmente clic en Guardar.

En el siguiente enlace puedes descargar el material de apoyo que se usó para describir cada uno de los pasos de esta entrada: Ordenar datos con macros.