viernes, 21 de abril de 2017

Crear una macro para ordenar las hojas de un archivo de excel en orden ascendente o descendente

Hoy vamos a escribir un poco de código en vba. El objetivo que debe cumplir nuestra macro es el de ordenar todas las hojas (o pestañas o tabs) de un archivo de excel, bien sea en orden ascendente o descendente.

Vamos a trabajar con el siguiente archivo de ejemplo:


Como pueden ver, tenemos 10 hojas son los siguientes nombres de ejemplo: X, A, M, W, Q, N, C, I, K, H. Entonces, si todo sale bien con nuestra macro, las hojas deberían quedar en el siguiente orde: A, C, H, I, K, M, N, Q, W, X o al reves, según la opción que seleccionemos.

Vamos a empezar por abrir el editor de vba, para esto utilizamos nuestro teclado digitando: Alt + F11:


Seleccionamos la opción para crear un nuevo módulo y escribimos el nombre de nuestra macro:


Y vamos a escribir nuestras primeras lineas:


En realidad se trata de una sola, lo que pasa es que por medio del caracter _ (guión al piso) podemos hacer que una línea de código muy larga se interrumpa visualmente y continúe en una nueva. Esto nos facilitará la lectura del mismo. }

Por medio de la palabra reservada Dim declaramos una variable que capture el número 1 o 2 en cuadro de diálogo que utilizará el usuario final para definir si quiere que el orden sea ascendente o descendente.

Ahora, declaramos la variable hojas, con la que vamos a capturar el número de hojas que tiene nuestro archivo:


Escribimos las líneas restantes y le agregamos comentarios para documentar:


Ejecutamos nuestra macro (recuerden que lo pueden hacer con la tecla F5 o F8 si lo quieren paso a paso). Al dar F5, vba nos mostrará el cuadro de dialogo siguiente:


Ingresamos el número 2, para realizar un sort descendente, damos clic en aceptar y tenemos:


Y listo, las pestañas de nuestro archivo de excel se encuentran ordenadas de manera descendente.

Este es el código en vba:
Código:

Espero les sirva. Hasta una próxima.

No hay comentarios.:

Publicar un comentario