Ejecutar varias macros automaticamente en varias hojas de un libro excel

27 envíos / 0 nuevos
Último envío
Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Ejecutar varias macros automaticamente en varias hojas de un libro excel

Hola a todos,

me he incrito a este blog porque he visto infinidad de soluciones, mismas que me he permitido tomar para solucionar situaciones que se presentan en el trabajo. Pero ahora tengo un problema para unas macros que tengo en un archivo,  son tres macros que requiero que se ejecute de manera automática una por una de forma ordenada, y se ejecute en varias hojas del libro, esperando me puedan apoyar.

 

les agradezco de antemano

 

saludos

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ejecutar varias macros automaticamente en varias hojas ...

Hola Fabián, bienvenido al foro de necesitomas.com

Una de las cosas que puede hacer una macro es ejecutar otras macros, basta que que las llames en el código, algo así:

Sub EjecutarVariasMacros()

  macro1

  macro2

  macro3

End Sub


Esto supone que hay una macro que se llama macro1, otra que se llama macro2, ...

 

Para ejecutarlo en varias hojas del libro, depende de cómo estén programadas las macros, pero si la macro se ejecuta sobre la hoja activa, lo único que habrá que hacer es activar la hoja que quieras y luego llamar a la macro de las tres macros que acabamos de crear antes, algo así:

Sub EjecutarEnVariasHojas()

    

    Worksheets("Hoja1").Activate

    EjecutarVariasMacros

    

    Worksheets("Hoja2").Activate

    EjecutarVariasMacros

    

    ...

End Sub

 

------
Ya sé Excel, pero necesito más.

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: Ejecutar varias macros automaticamente en varias hojas ...

Pacomegia, gracias por el apoyo, no soy bueno en el VBA, tengo un par de dudas,

la primera: la macro que me indicas la he generado, y al momento de ejecutarla me aparece el siguiente error " Error de compilación, no se Ha definido sub o function", la duda es: debo de generarla´en un módulo ó  en Thiswoork? he aqui la macro tal cual la he escrito:

 

Sub EjecutarVariasMacros()
eliminarcolumnasvacias
eliminarvacios
rellenaceldasenblanco
End Sub

 

lo que está en negritas me lo pone en amarillo VBA,

 

en lo que se refiere a la ejecuación de las macros en varias hojas, basta con que lo señale en una sola hoja (hoja activa)?

 

gracias por el apoyo pacomegia, me es muy valioso de verdad

AdjuntoTamaño
Image icon vba.jpg222.27 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ejecutar varias macros automaticamente en varias hojas ...

En un módulo está bien.

Imagino que ese error lo da porque no entiende alguno de los nombres de las macros.

Comprueba que estén bien escritos los nombres. Si pulsas [Ctrl] [J] sobre el nombre, aparecerá una lista con todo lo que tienes disponible elígelo de la lista en vez de escribirlo.

Si no aparece en esa lista es que no es accesible directamente, puede ser por varios motivos, porque haya dos que se llamen igual y no sabe a cuál de ellas te refieres, o vete tú a saber... ¿las macros están en el mismo libro?

 

------
Ya sé Excel, pero necesito más.

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: Ejecutar varias macros automaticamente en varias hojas ...

Pacomegia, excelnet he hecho lo que me dijiste y ya quedo, como es posible hacer que dicha macro se ejectua a cierta hora todos los dias?

 

podrás apoyarme con éso?

 

de antemano gracias y recibe un cordial saludos

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
programar la ejecución de la macro a una hora específica

Si quieres programar la tarea cuando Excel está abierto, echa un vistazo a Application.OnTime

 

Pero Imagino que quieres que se ejecute aunque Excel no esté abierto.

Una solución puede ser crear una tarea programada con el programador de tareas de windows, suponiendo que utilices windows (en mi versión de windows está en inicio>herramientas administrativas>programador de tareas).

Esta tarea deberá abrir tu libro de Excel, ejecutar la macro y luego cerrarlo.

 

Para que la macro se ejecute al abrir el libro, puedes colocarla en el evento Workbook_Open. lo que coloques aquí se ejecuta cada vez que abres el libro.

Puedes hacer que esta macro cierre el libro al terminar, claro que entonces el libro se cerrará también cuando lo intentes abrir a mano.

 

Otra posibilidad es crear un archivo script de windows (un archivo de texto con extensión .vbs) que indique todos los pasos a dar, y lo que crees como tarea programada sea una llamada a este script. Esto tienen la ventaja de que se salta las alertas de seguridad de Excel.

Aquí tienes unos ejemplos de cómo hacerlo:

http://pressf1.pcworld.co.nz/showthread.php?58648-Running-an-Excel-Macro-as-a-Scheduled-Task&p=360270&viewfull=1#post360270

http://www.mrexcel.com/forum/excel-questions/302970-task-scheduler-vbulletin-script-auto-open-excel.html#post1487108

 

 

------
Ya sé Excel, pero necesito más.

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: programar la ejecución de la macro a una hora específica

Deja checo Applicattion.ontime, para verificarlo,

 

por ahi me estaré reportando por cuestiones de ducas y demás.

 

Gracias pacomegia

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: programar la ejecución de la macro a una hora específica

pacomegia, mira, he aqui la macro:

 

Sub Auto_open()
Application.OnTime Time TimeValue("11:00"),"EjecutarVariasMacros"
End Sub

 

 

la cuestion es que me arroja error de compilación: se esperaba fin de la instrucción..... y me señala en rojo TimeValue

Ahora tengo una pregunta, con ésta macro se ejecutará todos los dias a las 11? ó es necesario creearla en Thiswoork para que se ejecuto todos los dias?

 

saludos

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: programar la ejecución de la macro a una hora específica

Prueba a eliminar "Time"

 

Sub Auto_open()
Application.OnTime TimeValue("11:00"),"EjecutarVariasMacros"
End Sub


Esto solo funcionará si tienes abierta la hoja de cálculo permanentemente.


Un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: programar la ejecución de la macro a una hora específica

El primer argumento de OnTime es la hora a la que quieres que se ejecute la macro

pero has puesto algo que no entiende, Time TimeValue("11:00"), es que esto son dos horas seguidas, la hora actual y las 11

basta con que pongas TimeValue("11:00")

Application.OnTime TimeValue("11:00"),"EjecutarVariasMacros"

 

Como esto está en la macro Auto_open, se ejecutará al abrir el archivo (siempre que las macros estén habilitadas)

 

Lo que estás haciendo es programar la ejecución para las 11:00, mientras mantengas Excel abierto, pero sólo se ejecutará una vez. No estás programando una tarea que se repite todos los días.

 

Si mañana por la mañana vuelves a abrir Excel y este archivo, se ejecutará la macro autoopen y se programará una nueva tarea para las 11:00.

 

Si tu idea es dejar Excel encendido permanentemente ¿? bastaría con que al final de tu procedimiento programes una nueva tarea para dentro de 24 horas, es decir, que la última instrucción de tu procedimiento EjecutarVariasMacros fuese algo así (no sé si funciona porque no he tenido un archivo abierto tanto tiempo)

Application.OnTime now+1,"EjecutarVariasMacros"

 

 

------
Ya sé Excel, pero necesito más.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: programar la ejecución de la macro a una hora específica

perdona Cron,

no vi tu respuesta "on time"

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: programar la ejecución de la macro a una hora específica

Don't worry

 

Tu respuesta, como siempre, es mucho más precisa ;)

 

 

Saludos

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: programar la ejecución de la macro a una hora específica

pacomegia, Cron,

 

gracias por su apoyo, he hecho la modificación que me indicaron, más sin embargo no se ejecutó, no sé a que se debió, mantuve el archivo abierto y nada, posterior modifique la hora, cerré el archivo lo volvi a abrir y nada, que pasará? 

 

Sub Auto_Open()
Application.OnTime TimeValue("01:35 p.m."), "EjecutarVariasMacros"
End Sub

no sé si tenga que ver con la hora que está en p.m.,,, es lo mismo escribir 13:35 y 01:35 p.m.?   VBA lo identifica igual.

 

reitero las gracias por su apoyo

 

Saludos 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
p.m. a mí me da error

A mí TimeValue("01:35 p.m.") me da error, no lo convierte bien

en cambio, si lo pongo así TimeValue("01:35 pm") sin puntos en el pm, sí lo reconoce bien como 13:35

 

------
Ya sé Excel, pero necesito más.

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: p.m. a mí me da error

pacomegia

 

ya hice la modificación, más no se ejecuta la macro, dich macro debe de estar en ThisWoork?

 

no soy muy bueno en VBA espero comprendan

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: p.m. a mí me da error

pacomegia, Cron

 

ya corrio el programa por ahi tenia una fallita,

 

ahora quiero que se ejecute para varias hojas he hecho lo que me comentaste al principio del foro pacomegia, he aqui como he generado la macro, mas no se si sea correcto, ya que no se ejecute en la segunda hoja:

 

 

Sub EjecutarEnVariasHojas()
Worksheets("Hoja1").Activate
EjecutarVariasMacros

Worksheets("Hoja1").Activate
EjecutarVariasMacros
End Sub

 

gracias de nuevo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
activas dos veces la hoja1

Fíjate que estás activando en los dos casos la Hoja1

 

Prueba a activar la hoja2 la segunda vez.

En cualquier caso, esto depende de cómo estén programadas tus macros; imagina que lo primero que hacen tus macros es cambiar la hoja activa, pues entonces da igual lo que actives antes... 

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Ejecutar varias macros automaticamente en varias hojas ...

Asegúrate de que la macro está en un módulo independiente (botón derecho -> insertar -> módulo)

Si pones la macro dentro de una hoja, es más difícil hacer referencia a otras hojas.

 

Saludos

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: Ejecutar varias macros automaticamente en varias hojas ...

pacomegia, cuanto te refieres a que esté activa la hoja, es similar a habilitadas las macros?

 

Cron, la macro si está en un módulo independiente

 

saludos

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
la hoja activa...

La hoja activa es la que ves en pantalla

(cuando haces clic con el ratón en la pestaña de una hoja, ésta se activa)

esto no tiene nada que ver con que las macros estén habilitadas

 

A lo que me refiero, es que una macro puede hacer muchas cosas, en la hoja activa o en otras hojas que no estén activas en ese momento.

Si la macro actúa haciendo cosas en obre la hoja activa, entonces es importante cuál es esa hoja activa antes de ejecutar la macro.

Si la macro hace por ejemplo sus cosas siempre en la hoja "hoja1" (porque lo pone explícitamente en el código de la macro) dará igual cuál sea la hoja activa antes de ejecutarla.

 

Si tus macros son grabadas y no has cambiado de hoja durante la grabación de la macro, entonces se graba todo en la hoja activa

 

 

------
Ya sé Excel, pero necesito más.

Fabián
Imagen de Fabián
Offline
última acción: Hace 9 años 6 meses
Nivel 1 - 200 puntos
alta: 10/04/2013 - 18:26
Puntos: 210
Re: la hoja activa...

entendido pacomegia, realizaré eso.

 

 

estaba pensando en que podría ejecutar estas macros una vez por mes para eviatr que se pierda la formulación, lo checaré y si tengo dudas pedire tua poyo

 

saludos

JOSE (no verificado)
Imagen de JOSE
PANCHO

AYUDA nesecito que una celda si de 5 de la mañada diga Sorteo Medio dia y despues de las 12: 55 diga Sorteo Noche

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 11 horas 25 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
por favor, crea un tema nuevo

por favor, crea un tema nuevo en el foro para plantear una pregunta nueva

 

------
Ya sé Excel, pero necesito más.

JOSE JOAO TEIXE... (no verificado)
Imagen de JOSE
EjecutarVariasMacros

TE ESTOY IMENSAMENTE AGRADECIDO UN CORDIAL SALUDO JJTF EL PORTO

Bustamante (no verificado)
Imagen de JOSE
ejecutar varias Macros

Estimado pacomegia, retomando el tema, en mi caso la macro que quiero ejecutar se encuentra en otro libro, es posible ejecutarla..??

 

gracias de antemano.

 

saludos.

Leticia (no verificado)
Imagen de JOSE
Tengo un error en un boton con macro

[este comentario ha sido movido a un tema nuevo en el foro
http://www.necesitomas.com/tengo-error-boton-macro]

tumama (no verificado)
Imagen de JOSE
jajajajjaa le respondes 5 años despues

Risa jajajajjaa le respondes 5 años despues