Usamos cookies. Tienes opciones. Las cookies nos ayudan a mantener el sitio funcionando sin problemas e informar sobre nuestra publicidad, pero si deseas realizar ajustes, puedes visitar nuestro Aviso de cookies para más información.
Utilizamos cookies propias y de terceros para analizar su actividad en el sitio web con el objetivo de enviarle publicidad personalizada y mejorar el funcionamiento de la web. Puedes aceptar todas las cookies pulsando el botón “ACEPTAR” o seleccionarlas en función de su funcionalidad pulsando el botón “AJUSTES”.
×

Macros de Excel aplicados al trabajo

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. 

captura 1

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.

captura 2

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:

captura 3

 

  • Nombre de la macro: será obligatorio que el primer carácter sea una letra y el nombre no contenga ningún espacio. Por defecto, el nombre será Macro seguido del número correspondiente al orden de creación de esta. Debido a ello será conveniente modificar el nombre.
  • Tecla de método abreviado: nos permitirá ejecutar de manera rápida la macro desde el libro en el que este activada. Se debe tener cuidado con pisar otros atajos como puede ser Ctrl + C, debido a que se priorizará la ejecución de la macro inhabilitando el atajo. En este caso la solución que yo propongo es asignar la macro a un icono, forma o cualquier cosa que nos apetezca. Para ello una vez insertado el elemento que queramos sencillamente debemos clicar el botón derecho de nuestro ratón y seleccionar la opción Asignar macro…. Esto se be hacer una vez la macro ya haya sido creada y solo se puede asignar una macro a un elemento.
  • La opción Guardar macro en, nos permite seleccionar en que ubicación se quiere guardar la macro. Por defecto, esta seleccionado el libro sobre el que se está trabajando y no suele ser necesario modificar esto.
  • Para finalizar encontramos un cuadro de texto para agregar cualquier Descripción que consideremos necesaria o dejarlo en blanco.
  • Una vez pulsemos el botón Aceptar comenzarán a grabarse las diferentes acciones que hagamos hasta que pulsemos el botón de Detener Grabación.
captura4

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.

captura 5

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:

captura 6

Esta macro nos permitirá ampliar el rango 7 días de manera automática. El código se puede explicar en las diferentes partes:

  1. Sheets (“nombre_de_la_hoja”).Select Seleccionamos la hoja sobre la que vamos a trabajar.
  2. ultima = ActiveSheet.Cells(Rows.Count, "b").End(xlUp).Row “ultima” es el nombre que yo le asigno a esta variable, que se va a corresponder con el último número de celda con datos de la fila “b”. Entonces “ultima” se corresponderá con un número, por ejemplo, el 10.
  3. Range("B" & ultima, "B" & ultima + 7).Select En este paso seleccionamos todo el rango que comprende desde “B” 10 hasta “B” 10+7. En este ejemplo concreto no se usa, pero es interesante para saber cómo referenciar a los rangos de celdas dinámicos.
  4.     For i = ultima To ultima + 6

    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.

captura 7

*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

Imagen Unsplash: https://unsplash.com/es/fotos/GauA0hiEwDk

En nuestra compañía