Hoy expondré un ejemplo de cómo automatizar, con Power Automate Desktop, nuestras tareas en Excel.
En particular veremos cómo es posible trabajar sobre un fichero de Excel y ejecutar una macro en él contenida.
Nuestro fichero Excel tiene por nombre: 'PA_EjecutarMacroExcel.xlsm', que por facilidad tendremos abierto (no obstante, recuerda que con Power Automate podemos abrir un fichero Excel cualquiera, incluso habilitar sus macros!!).
Dentro de nuestro fichero existe una macro llamada '' muy simple, que solo añade a la derecha de la celda una fórmula donde multiplicamos por dos celda activa:
Con los previos listos, accederemos a Power Automate Desktop para montar nuestro Nuevo Flujo:
Un repaso antes de detallar cada paso...
1- para nuestro ejemplo comenzamos generando una lista aleatoria de números...
2- Asociamos a un libro de Excel ya abierto (el ya comentado 'PA_EjecutarMacroExcel.xlsm')
3- elegimos la hoja activa sobre la que trabajar de nuestro archivo
4- e igualmente elegimos cuál será nuestra celda activa, en mi ejemplo la celda A1.
5- con un bucle For...Each recorremos cada elemento de números aleatorios generados (ver primer paso), donde:
5.1- definimos la celda activa como una por debajo de la celda activa anterior...
5.2- escribimos en la hoja de cálculo el valor o elemento que toque de nuestra lista 5.3- y finalmente ejecutamos nuestra macro... lo que completará a su derecha la fórmula comentada.
Veamos con detalle cada paso descrito.
En el paso uno desde las acciones de Variables añadiremos Generar número aleatorio, donde en el ejemplo indicamos que los valores a generar irán entre 0 y 100, además generaremos 5 valores y no permitimos que haya duplicados.
En el segundo paso desde el grupo de Excel indicamos que queremos trabajar sobre un archivo ya abierto:Asociar a Excel en ejecución, donde damos el nombre (y ruta si fuera el caso) del archivo... PA_EjecutarMacroExcel.xlsm
Paso tres. Del fichero anterior indicamos el nombre de la hoja que activamos, y sobre la que trabajaremos...Establece la hoja de cálculo de Excel activa.
Podemos seleccionar la hoja activa bien por 'Nombre de hoja' bien por 'Posición' (o Índice) de izquierda a derecha.
Paso cuatro. Identificamos cuál será la celda activa dentro de la hoja anterior, celda A1 en mi ejemplo... Insertamos la acción Activar celda en hoja de cálculo de Excel.
Es posible identificarla en forma absoluta (un número de columna y un número de fila) o de manera relativa (desplazada en alguna dirección desde la actual celda activa...).
Paso cinco. Entramos en el bucle For Each para recorrer la lista aleatoria del punto uno.
Dentro del proceso del bucle, en el punto 5.1 activaremos la celda por debajo de la actual celda activa (recuerda que era A1)... esto activará en cada etapa del bucle la celda inmediata por debajo.
Activar celda en hoja de cálculo de Excel
Seguimos dentro del bucle en el paso 5.2 donde añadimos la acción Escribir en hoja de cálculo de Excel, donde indicamos que deseamos escribir el elemento actual de la lista aleatoria en la celda activa actual...
Finalizamos con el flujo, en el último paso dentro de bucle... Paso 5.3 donde finalmente lanzamos nuestra macro/VBA de Excel: Ejecutar macro de Excel
Basta indicar el nombre de la macro.
Al ejecutar nuestro flujo desde Power Automate Desktop veríamos el resultado:
Donde efectivamente comprobamos que se han trasladado cinco valores aleatorios a la hoja 'TestPA' del libro 'PA_EjecutarMacroExcel.xlsm', y cómo además se ha ejecutado la macro en cada momento, añdiendo el procedimiento deseado (multiplicar por dos).
En particular veremos cómo es posible trabajar sobre un fichero de Excel y ejecutar una macro en él contenida.
Nuestro fichero Excel tiene por nombre: 'PA_EjecutarMacroExcel.xlsm', que por facilidad tendremos abierto (no obstante, recuerda que con Power Automate podemos abrir un fichero Excel cualquiera, incluso habilitar sus macros!!).
Dentro de nuestro fichero existe una macro llamada '' muy simple, que solo añade a la derecha de la celda una fórmula donde multiplicamos por dos celda activa:
Sub PruebaPowerAutomate() ActiveCell.Offset(0, 1).FormulaR1C1 = "=RC[-1]*2" End Sub
Con los previos listos, accederemos a Power Automate Desktop para montar nuestro Nuevo Flujo:
Un repaso antes de detallar cada paso...
1- para nuestro ejemplo comenzamos generando una lista aleatoria de números...
2- Asociamos a un libro de Excel ya abierto (el ya comentado 'PA_EjecutarMacroExcel.xlsm')
3- elegimos la hoja activa sobre la que trabajar de nuestro archivo
4- e igualmente elegimos cuál será nuestra celda activa, en mi ejemplo la celda A1.
5- con un bucle For...Each recorremos cada elemento de números aleatorios generados (ver primer paso), donde:
5.1- definimos la celda activa como una por debajo de la celda activa anterior...
5.2- escribimos en la hoja de cálculo el valor o elemento que toque de nuestra lista 5.3- y finalmente ejecutamos nuestra macro... lo que completará a su derecha la fórmula comentada.
Veamos con detalle cada paso descrito.
En el paso uno desde las acciones de Variables añadiremos Generar número aleatorio, donde en el ejemplo indicamos que los valores a generar irán entre 0 y 100, además generaremos 5 valores y no permitimos que haya duplicados.
En el segundo paso desde el grupo de Excel indicamos que queremos trabajar sobre un archivo ya abierto:Asociar a Excel en ejecución, donde damos el nombre (y ruta si fuera el caso) del archivo... PA_EjecutarMacroExcel.xlsm
Paso tres. Del fichero anterior indicamos el nombre de la hoja que activamos, y sobre la que trabajaremos...Establece la hoja de cálculo de Excel activa.
Podemos seleccionar la hoja activa bien por 'Nombre de hoja' bien por 'Posición' (o Índice) de izquierda a derecha.
Paso cuatro. Identificamos cuál será la celda activa dentro de la hoja anterior, celda A1 en mi ejemplo... Insertamos la acción Activar celda en hoja de cálculo de Excel.
Es posible identificarla en forma absoluta (un número de columna y un número de fila) o de manera relativa (desplazada en alguna dirección desde la actual celda activa...).
Paso cinco. Entramos en el bucle For Each para recorrer la lista aleatoria del punto uno.
Dentro del proceso del bucle, en el punto 5.1 activaremos la celda por debajo de la actual celda activa (recuerda que era A1)... esto activará en cada etapa del bucle la celda inmediata por debajo.
Activar celda en hoja de cálculo de Excel
Seguimos dentro del bucle en el paso 5.2 donde añadimos la acción Escribir en hoja de cálculo de Excel, donde indicamos que deseamos escribir el elemento actual de la lista aleatoria en la celda activa actual...
Finalizamos con el flujo, en el último paso dentro de bucle... Paso 5.3 donde finalmente lanzamos nuestra macro/VBA de Excel: Ejecutar macro de Excel
Basta indicar el nombre de la macro.
Al ejecutar nuestro flujo desde Power Automate Desktop veríamos el resultado:
Donde efectivamente comprobamos que se han trasladado cinco valores aleatorios a la hoja 'TestPA' del libro 'PA_EjecutarMacroExcel.xlsm', y cómo además se ha ejecutado la macro en cada momento, añdiendo el procedimiento deseado (multiplicar por dos).
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.