temporizador en macros

28/08/2008 - 00:06 por juan | Informe spam
Gente:
Quisera realizar un macro que ejecute una serie de pasos a
determinada hora, en el caso que se pueda, es condicion obligatoria que el
libro este abierto???, saludos y gracias

Preguntas similare

Leer las respuestas

#1 MRoCFe
28/08/2008 - 03:36 | Informe spam
On 27 ago, 19:06, juan wrote:
Gente:
          Quisera realizar un macro que ejecute una serie de pasos a
determinada hora, en el caso que se pueda, es condicion obligatoria que el
libro este abierto???, saludos y gracias




Cuando utilizas el método "OnTime" (Application.OnTime) no es
necesario tener el libro en el que reside el procedimiento a correr
abierto.
Pero lo que tienes que tener abierto es el Excel.

Saludos, Cacho.
Respuesta Responder a este mensaje
#2 Héctor Miguel
28/08/2008 - 03:41 | Informe spam
hola, juan !

Quisera realizar un macro que ejecute una serie de pasos a determinada hora
en el caso que se pueda, es condicion obligatoria que el libro este abierto???



1) usa el metodo OnTime <tiempo_cuando>, "nombre_de_la_macro"
puedes consultar consejos acerca del uso (correcto/apropiado/...) del metodo (OnTime) p.e. aqui:
-> Scheduling Events With OnTime And Windows Timers
http://www.cpearson.com/excel/OnTime.aspx

2) para que excel ejecute algun codigo, vba necesita "leerlo" de algun modulo (o sea)...
el libro que contiene la macro SI debera estar abierto "a la hora" que quieras que se ejecute "la macro"
el metodo ontime se puede encargar de abrir un libro (si esta cerrado) para ejecutar una macro "programada"
(de todas formas) el requisito "minimo indispensable" es que excel este en funcionamiento

3) otra alternativa pudiera ser usando el programador de tareas de windows -?-

saludos,
hector.
Respuesta Responder a este mensaje
#3 juan
02/09/2008 - 18:28 | Informe spam
Gente:
1.tengo un problema con el codigo, mi intencion es que todos los
dias a las 15 hs haga determinada accion, pero si pongo """ TimerID =
SetTimer(15&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)""""" no me hace
nada, cual es mi error???,


http://www.cpearson.com/excel/OnTime.aspx

2. Lo otro que no me quedo claro para que debo declarar cada cuanto
"explote" el timer

3. Otra cosa que me pasa es que si pongo en SetTimer(0& , 0,Timerseconds *
1000&. me realiza la accion, pero luego se me cierra el excel cuando
quiero acceder al codigo

4. Y la utima es cual es la diferencia entre mi anterior codigo que esta tal
cual en el link y este

Application.OnTime TimeValue("17:00:00"), "my_Procedure"

This example cancels the OnTime setting from the previous example.

Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False



desde ya muchas gracias, saludos

juan







Sub StartTimer()
TimerSeconds = 1 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
Respuesta Responder a este mensaje
#4 Héctor Miguel
02/09/2008 - 22:23 | Informe spam
hola, juan !

1) el unico codigo que necesitas es el que expusiste (casi) al final (el mas sencillo)...
Application.OnTime TimeValue("17:00:00"), "my_Procedure"

-> esto significa que a las 17 hrs. se ejecutara la macro llamada "my_Procedure"
lo cual requiere que tu libro se abra ANTES de la hora programada (y obviamente el excel tambien)
y... (por si las dudas) si piensas cerrar el libro ANTES de que se ejecute el procedimiento programado...
revisa muy bien el uso de los parametros earliesttime y schedule (necesitaras usarlos en el evento '_beforeclose')

2) en la pagina existen varias "observaciones" en cuanto a "ciertos cuidados/riesgos/requerimientos/..."
si pretendes utilizar los windows-timers (supongo que los pasaste de largo ?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
1.tengo un problema con el codigo, mi intencion es que todos los dias a las 15 hs
haga determinada accion, pero si pongo """ TimerID = SetTimer(15&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)"""""
no me hace nada, cual es mi error???,
http://www.cpearson.com/excel/OnTime.aspx

2. Lo otro que no me quedo claro para que debo declarar cada cuanto "explote" el timer

3. Otra cosa que me pasa es que si pongo en SetTimer(0& , 0,Timerseconds * 1000&.
me realiza la accion, pero luego se me cierra el excel cuando quiero acceder al codigo

4. Y la utima es cual es la diferencia entre mi anterior codigo que esta tal cual en el link y este
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
This example cancels the OnTime setting from the previous example.
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False

Sub StartTimer()
TimerSeconds = 1 ' how often to "pop" the timer.
TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub
Respuesta Responder a este mensaje
#5 juan
02/09/2008 - 23:42 | Informe spam
Hector:
Gracias por tu pronta respuesta, optare por la version
simplificada, pero una vez que ejecuto la aplicacion.ontime todos los dias lo
va a hacer??, o lo hace ese dia especificamente y no mas??, gracias
juan

"Héctor Miguel" escribió:

hola, juan !

1) el unico codigo que necesitas es el que expusiste (casi) al final (el mas sencillo)...
Application.OnTime TimeValue("17:00:00"), "my_Procedure"

-> esto significa que a las 17 hrs. se ejecutara la macro llamada "my_Procedure"
lo cual requiere que tu libro se abra ANTES de la hora programada (y obviamente el excel tambien)
y... (por si las dudas) si piensas cerrar el libro ANTES de que se ejecute el procedimiento programado...
revisa muy bien el uso de los parametros earliesttime y schedule (necesitaras usarlos en el evento '_beforeclose')

2) en la pagina existen varias "observaciones" en cuanto a "ciertos cuidados/riesgos/requerimientos/..."
si pretendes utilizar los windows-timers (supongo que los pasaste de largo ?)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ OP __
> 1.tengo un problema con el codigo, mi intencion es que todos los dias a las 15 hs
> haga determinada accion, pero si pongo """ TimerID = SetTimer(15&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)"""""
> no me hace nada, cual es mi error???,
> http://www.cpearson.com/excel/OnTime.aspx

> 2. Lo otro que no me quedo claro para que debo declarar cada cuanto "explote" el timer

> 3. Otra cosa que me pasa es que si pongo en SetTimer(0& , 0,Timerseconds * 1000&.
> me realiza la accion, pero luego se me cierra el excel cuando quiero acceder al codigo

> 4. Y la utima es cual es la diferencia entre mi anterior codigo que esta tal cual en el link y este
> Application.OnTime TimeValue("17:00:00"), "my_Procedure"
> This example cancels the OnTime setting from the previous example.
> Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
> Procedure:="my_Procedure", Schedule:=False

> Sub StartTimer()
> TimerSeconds = 1 ' how often to "pop" the timer.
> TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
> End Sub



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida