Lección 10: Filtrar y ordenar automáticamente datos con macros.

Escrito por Administrador

23 de agosto de 2021

En esta lección, vas a aprender a insertar filtros en tus hojas de cálculo y a filtrar de manera automática, además de ordenar los datos en base a una o varias columnas. ¡Empecemos!

Existe un estudio que asegura que en el 95% de las hojas de cálculo existe una tabla. Esto es normal porque tendemos a funcionar como funcionan las bases de datos, a base de registros.

Si tuviéramos que elegir las funcionalidades indispensables de una tabla, sin duda serían el filtrado de datos y su ordenación. No es funcional una tabla en la que no podamos buscar de forma rápida los datos que contiene y ordenarlos de manera adecuada.

 

1. Insertar un filtro en una tabla de manera automática.

Para insertar filtros en nuestras tablas de manera automática, usaremos la propiedad AutoFilter, que tiene la siguiente sintaxis:

Range("B2:B9").AutoFilter
total-operaciones-matematicas-macros

Usando este comando, introducimos el filtro en la cabecera de la tabla especificada. Si volviéramos a repetirlo, este filtro desaparecería.

total-operaciones-matematicas-macros

Con el filtro introducido, ya tenemos opción de ordenar la tabla de manera manual, pero nosotros queremos que la ordenación sea automática. ¿Cómo? Vamos a verlo.

2. Ordenar elementos de una tabla de forma automática.

Podemos ordenar los elementos de una lista en función de uno o varios campos.

Si solo usamos un campo como criterio, escribiremos:

Range("C4:G28").Sort Key1:=Range("E:E"), Order1:=xlAscending, Header:=xlYes

Vamos a destripar el comando anterior para entenderlo mejor. El primer rango (C4-G28) hace referencia al rango completo de la tabla a ordenar. En este caso hemos incluido el encabezado de la misma, por eso al final del comando le decimos que está incluido Header:=xlYes. Si en el rango hubiéramos excluido el encabezado, hubiéramos terminado el comando con Header:=xlNo.

A continuación, en el mismo comando encontramos la propiedad Key, que hace referencia al campo referencia para ordenar la tabla. Tal y como está en el ejemplo, la tabla se ordenará según la columna E.

También se indica el orden alfabético o numérico, es decir, si es ascendente o descendente con: xlAscending o xlDescending.

Si usamos, por ejemplo, dos campos como criterio, escribiremos:

Range("C4:G28").Sort Key1:=Range("C:C"), Order1:=xlAscending, Key2:=Range("E:E"), Order2:=xlAscending, Header:=xlYes

Este caso es igual que el anterior, solo que añadimos una nueva Key con sus parámetros correspondientes. De esta manera, la tabla se ordenará según las columnas C y E, prevaleciendo la columna C, que es la primera Key.

Veamos un ejemplo.

Crea un libro nuevo, abre el editor VBA, inserta 3 módulos y copia las siguientes macros.

Macro 1

Sub Leccion10_1()

'Macro que inserta automáticamente un filtro en el encabezado de la tabla o lo elimina si volvemos a 'ejecutarla

Range("C4:G4").AutoFilter

End Sub

Macro 2

Sub Leccion10_2()

'Macro que ordena alfabéticamente la tabla según el campo asignatura

Range("C4:G28").Sort Key1:=Range("E:E"), Order1:=xlAscending, Header:=xlYes

End Sub

Macro 3

Sub Leccion10_3()

'Macro que ordena alfabéticamente la tabla según los campos nombre, asignatura y nota, prevaleciendo 'en este orden

Range("C4:G28").Sort Key1:=Range("C:C"), Order1:=xlAscending, Key2:=Range("E:E"), Order2:=xlAscending, Key3:=Range("F:F"), Order3:=xlAscending, Header:=xlYes

End Sub

Ahora inserta tres botones y asociales las macros. Rellena la hoja Excel tal y como se muestra en la siguiente figura.

total-operaciones-matematicas-macros

Si ejecutas la primera de las macros, verás como aparece un autofiltro en el encabezado de la tabla y, manualmente, podrías ordenar las columnas a tu antojo.

Si vuelves a ejecutar la macro, desaparece el autofiltro.

Ejecuta ahora la segunda macro para que la tabla se ordene de manera automática y de forma ascendente según la columna “Asignatura”.

total-operaciones-matematicas-macros

Con la tercera macro, el orden de la tabla atiende a tres criterios: nombre, asignatura y nota, por este orden.

total-operaciones-matematicas-macros

Ya sabemos ordenar una tabla después de realizar con ella cualquier tipo de operación como las que ya hemos visto: inserción de filas, borrado de filas, modificación del contenido….

Con esto llegamos al final de la décima lección. Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

Descarga el archivo del ejemplo

« L9. Combinar celdas con macros.

L11. Buscar el inicio y fin de una tabla con macros. »

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto