Vamos a ver el entorno de VBA.
Lo primero que vamos a ver es el editor de Visual Basic (VBA).
Para ello, vamos a la ficha programador o desarrollador, y, en el grupo código, hacemos clic en visual Basic, aunque, también, podemos pulsar <ALT> <F11>.
Esto nos va a llevar al editor donde podemos crear nuestras macros.
Esta ventana que tenemos aquí, tenemos la ventana del explorador de proyectos.
Si no vemos esta ventana, si pinchamos en el siguiente icono, y, volvemos a ponerla visible, también podemos pulsar <CTRL> <R>.
Si nos vamos a la pestaña Insertar, podemos acceder al editor, donde podemos insertar un formulario, un módulo, o, un módulo de clase, en este caso, vamos a insertar un Módulo, todo lo que creemos dentro de un módulo, aparecerá en Excel como una macro.
En esta hoja en blanco, vamos a poder escribir y ejecutar nuestras macros.
Puede pasar es que alguna de estas ventanas, se cierre, y, podemos pensar que lo que hemos hecho se ha perdido, pero no es así, para que vuelva a aparecer hacemos doble clic sobre el módulo que se ha cerrado.
De la misma manera, podemos restaurar una ventana.
En caso de que tengamos que eliminar un módulo, marcamos el módulo, botón derecho del ratón, y, Quitar Modulo1…
Una vez desarrollada nuestras macros en el editor de VBA, lo que tenemos que hacer es grabar el libro, cuando cerramos la ventana del editor de VBA, no estamos perdiendo nada, simplemente cerramos el editor, en el momento de grabar el libro, es en ese momento cuando se graba lo desarrollado en el editor de VBA.
GRABADORA DE MACROS
Vamos a ver cómo podemos usar la grabadora de macros, supongamos que tenemos estas tres hojas, las tres hojas tienen el mismo formato, lo único que cambia son los valores.
Vamos a ir a la pestaña de programador, en el grupo código, voy a hacer clic en grabar macro.
Aparece la ventana, grabar macro, dejamos el nombre que pone por defecto en la ventana, nombre de la macro, podemos añadir una descripción, sobre lo que hace esta macro, y, a partir de pulsar Aceptar, todo lo que hagamos se estará grabando.
Entonces, hacemos clic en Aceptar.
Le damos el formato que más nos guste a cada columna.
En mi caso, voy a dar un fondo a cada columna de cantidades, centro los datos, voy a la pestaña de vista, y, desmarco líneas de cuadriculas, y, le añado bordes.
Una vez terminado, hacemos clic en detener grabación, dentro del grupo código, en la pestaña de programador.
Ahora voy a la hoja 2, me coloca en la celda A1, voy a la pestaña de programador, en el grupo código, hago clic en macros.
Se nos abre la ventana de macro, con todas las macros que tengamos.
Seleccionamos la nuestra, y, hacemos clic en Ejecutar.
Vemos que ha aplicado el formato a las columnas de la hoja 2, de una forma rapidísima.
Hacemos lo mismo para la hoja 3.
Veamos las líneas de esta macro, entramos en el entorno de visual Basic, yendo a la ficha de programador, y, hacemos clic en visual Basic, dentro del grupo, código.
Desplegamos Módulos, y, hacemos doble clic en Modulo1, cada módulo puede contener una o más macros.
Y vemos las líneas que se grabaron.
Cada una de las líneas realiza los pasos que hemos grabado a través de la grabadora de macros.
OPTIMIZANDO EL CÓDIGO DE LA GRABADORA
Ahora, estando, trabajando en el mismo archivo, pero desde cero, volvemos a crear una macro, para dar formato a la hoja 1, pero por error, le damos formato a otras celdas que no deberíamos.
Vamos a la ficha programador, hacemos clic en grabar macro, le dejamos el nombre que nos pone por defecto, hacemos clic en aceptar, y damos formato a la hoja 1.
Una vez terminada, hacemos clic en detener grabación.
Podemos ver que le he dado formato a celdas que no debía.
Si vamos al editor de visual Basic, en la pestaña de programador, dentro del grupo código, vemos que hay algunas líneas de más, que son estas, donde selecciona el rango F1:G2, que es el rango equivocado.
Simplemente, eliminamos esas líneas de más, ahora, si me coloco en una celda, y, ejecuto de nuevo la macro, ocurre exactamente lo que estábamos esperando.
Cuando hacemos clic en grabar macro, se abre una ventana, donde podemos dar un nombre a la macro.
También, podemos asignarle un método abreviado, si por ejemplo, si en el cuadro en blanco al lado de CTRL+, pongo una X, pues cuando pulse CTRL + X, se ejecutará la macro.
También, podemos decidir donde guardamos la macro, si desplegamos guardar macro en:
Tenemos tres opciones, la primera de ellas, es libro de macros personal, esto quiere decir que las macros que creemos se guardaran en libros de macros personal, es decir, que esta macro va a estar disponible para cualquier archivo de Excel.
La siguiente opción es libro nuevo, esto quiere decir que va a crear un libro nuevo, y, ahí se va a guardar la macro.
Por último, y, por defecto, tenemos este libro, quiere decir que la macro quedara guardada en este libro que estamos usando.
Y ya por último, podemos agregar una descripción de lo que hace esta macro.
Veamos otro ejemplo
Bien, tenemos lo siguientes datos:
Donde tenemos los años en horizontal, con una fila de totales, y, las tiendas en vertical.
Pues queremos poner los años en vertical, las tiendas en horizontal, además, de darle un formato.
En este caso, debemos de hacer uso de transponer de pegado especial, para que, lo que está en vertical lo pone en horizontal, y, lo que está en horizontal, lo pone en vertical.
Vamos a la ficha programador, dentro del grupo código, hacemos clic en grabar macro.
Se abre la ventana, grabar macro, dejamos el nombre que nos pone por defecto, y, aceptamos.
Bien, vamos a la hoja1, seleccionamos el rango de datos, pulsamos CTRL-C para copiar.
Seleccionamos la celda donde vamos a transponer, clic con botón alternativo del ratón, y, elegimos transponer.
Borramos el rango anterior, pegamos el rango transpuesto, y, le damos un formato, además, quitamos las líneas de cuadricula desde la pestaña vista.
Vemos como aparece la línea de total ahora en horizontal, pero en este caso, nos da los totales por tienda.
Ahora, vamos a la hoja2, nos colocamos en B4, y, ejecutamos la macro.
Podemos ver que en cuestión de segundos, le ha aplicado el formato.
Veamos cuales fueron las líneas que se generaron.
Vemos que selecciona el rango B4:G7, que es donde están los datos, después los copias, selecciona la celda B10, donde lo pega.
Esto es lo que haría el primer bloque de líneas.
Todas estas líneas, se grabaron en la macro a medida que íbamos dando pasos.
Con esto, vemos qué no es necesario saber Visual Basic para ello, podemos usar la grabadora de macros.
Por ejemplo, quiero que me añada una hoja nueva a partir de la hoja activa, pero como no se el código, voy a la pestaña de programador, voy a grabar una macro, y, lo único que voy a hacer es hacer clic en el icono de más para añadir una hoja.
Ahora, veamos las líneas que género, y, generó esta línea.
Que significa, añadir una hoja a partir de la hoja activa.
Ahora, lo que quiero es que en esa hoja que ha creado, me ponga el número de hoja junto con el total de hojas, es decir, que ponga, por ejemplo, 2 de 2.
Para ello, en Excel, debemos de hacer uso de la función HOJA(), que devuelve la hoja activa, concatenado con la palabra de, y, concatenado con la función HOJAS(), que devuelve el número total de hojas.
De nuevo, vamos a la ficha programador, grabamos una macro, y, en una hoja cualquiera ponemos lo siguiente:
=HOJA() & " de " & HOJAS()
Detenemos la grabación.
Vamos a macros, y, editamos la macro, porque vamos a copiar el código generado, y, lo vamos a pegar a continuación de la línea de añadir una hoja.
Ahora, lo que quiero es que nadie pueda modificar esta celda, además, de no verse la formula.
Para ello, hacemos clic en este icono, con lo que queda seleccionada toda la hoja.
Pulsamos CTRL-1, para ir a formato de celdas.
Vamos a la pestaña proteger, y, desmarcamos bloqueada.
De esta forma, aunque protejamos la hoja, todas las celdas estarán liberadas.
Ahora, seleccionamos la celda donde hemos puesto el número de página, pulsamos CTRL-1, para ir a formato de celdas, volvemos a la pestaña de proteger, y, marcamos bloqueada, y, oculta.
Cuando marcamos oculta, hasta que no pongamos una contraseña, no veremos las fórmulas, mientras no este protegido, veremos las fórmulas.
Aceptamos.
Vamos a la pestaña de revisar, hacemos clic en proteger hoja, y, le ponemos una contraseña.
Detenemos la macro.
Editamos la macro creada, copiamos el código, y, lo pegamos a continuación del último código de la primera macro que nos creaba una hoja nueva.
Borramos la hoja, volvemos a la hoja1, y, ejecutamos la macro, podemos ver como la celda donde hemos puesto el número de hoja, está bloqueada, además, de no aparecer la formula en la barra de fórmulas, pero el resto de las celdas, aunque le hayamos puesto una contraseña están libres.
|
Comments