Actualmente Excel sigue siendo una de las herramientas más usadas en el día a día de las personas que trabajan con datos, de la naturaleza que sean.
No obstante, la mayoría de las personas no conocen todo el alcance o los recursos que ofrece esta herramienta. Por ello, en este artículo se va a explicar y utilizar en un ejemplo práctico el complemento de programador, concretamente las macros.
Estas macros son trocitos de código que nos van a permitir automatizar tareas que hacemos de forma reiterativa en Excel, como puede ser copiar y pegar diferentes valores en celdas, añadir columnas o filas, ampliar rangos de gráficos o cualquier otra cosa que se nos pueda ocurrir relacionada con las hojas de Excel.
Estas macros se basan en el lenguaje de programación Visual Basic, que como su propio nombre refleja se creó con la intención de ser simple. No obstante, en este articulo no se pretende enseñar a nadie a programar ni mucho menos, por ello vamos a recurrir a la opción de grabar macros, la cual nos permitirá traducir las acciones o tareas que queramos a ese código mencionado.
Para ello el primer paso será comprobar que tenemos activado el complemento de programador y en caso contrario activarlo. Una vez estamos en la pestaña Archivo, vaya a Más.. y posteriormente seleccione Opciones, una vez llegamos aquí debemos comprobar que dentro de Personalizar cinta de opciones la casilla del Programador tiene el check activado como en la siguiente imagen.
Una vez esta casilla este seleccionada y se pulse el botón aceptar, la pestaña Desarrollador permanecerá visible hasta que se deseleccione esta opción o se tenga que reinstalar el programa.
Como se puede observar en la parte señalada de la imagen hay diferentes opciones, pero en las que nos fijaremos será Macros y Grabar macro. La primera de ellas servirá para ver las macros ya existentes y realizar diferentes acciones sobre ellas.
La segunda opción, será nuestro gran aliado y lo que como ya mencionábamos nos permitirá traducir “acciones humanas” a código, para posteriormente poder ejecutarlo y no tener que volver a hacerlo de forma manual. Una vez pulsamos sobre la opción de Grabar macro se abrirá el siguiente cuadro de opciones:
Una vez detengamos la grabación debemos ir a la opción de Macros, se nos abrirá una ventana con diferentes opciones. Por sencillez, en este articulo solo vamos a centrarnos en la opción Paso a paso, no obstante, un buen sitio dónde buscar más información sobre el tema es la propia página de soporte de Microsoft, os dejo aquí el articulo relacionado con este tema.
En Paso a paso se nos abrirá el Editor de Visual Basic, desde dónde podremos modificar el código de la macro grabada, guardar los cambios y posteriormente ejecutar el código, todo el código de golpe con F5 o línea por línea con F8, entre otras cosas. Esto segundo me parece muy útil, ya que permite ver paso por paso las acciones que se van realizando sobre la hoja de Excel.
Esto sería el Editor de Visual Basic, este es el resultado tras grabar una macro sencilla como puede ser copiar y pegar valores de una celda a otra. En primer lugar, las macros siempre empiezan por Sub “Nombre_de_la_macro” ()y terminan en End Sub, el nombre de la macro podría cambiarse desde aquí. Todos los comentarios que se quieran hacer deben ir precedidos de ' , como se puede observar en la captura, y de esta manera se mostrarán en color verde. En este caso se señala la importancia de poner esa primera línea de código en caso de no venir por defecto, ya que indica la hoja sobre la que se deben ejecutar las acciones grabadas.
Por concluir, todo lo que aparezca en negro será el código que también podemos modificarlo o agregar líneas si queremos. Es muy útil juntar en una, varias macros grabadas copiando y pegando el código, para hacer diferentes pasos conjuntamente. Una vez realizados dichos cambios debemos guardar la macro en el botón señalado y ya podremos cerrar el Editor volviendo a la hoja con los cambios realizados.
Para finalizar, quiero explicar un trozo de código que refleje la lógica a la hora de trabajar sobre rangos de celdas dinámicos y pueda usarse de manera sencilla, no obstante, esta no es la única forma de hacerlo ni tiene porque ser la más eficiente.
Este ejemplo se podría usar para actualizar los datos semanales o diarios, ya que la mayoría de las veces se actualizarán desde la última celda con datos:
Esta macro nos permitirá ampliar el rango 7 días de manera automática. El código se puede explicar en las diferentes partes:
Cells(i + 1, "B") = Cells(i, "B").Value + 1
Next i Para concluir la parte más importante del código, se crea un bucle que va recorriendo las diferentes celdas desde “ultima” hasta “ultima” + 6 y rellenándolas con el valor de la celda anterior + 1. Al quitar la parte final de + 1 nos lo rellenaría con el valor que ya hay permitiéndonos ampliar rangos de texto, por ejemplo.
*Fuentes bibliográficas:
Soporte Microsoft: https://support.microsoft.com/es-es/office/automatizar-tareas-con-la-grabadora-de-macros-974ef220-f716-4e01-b015-3ea70e64937b#OfficeVersion=MacOS