Abrir archivos de Excel a una hora determinada

Quisiera saber como poder abrir una serie de archivos de excel todos los días a una hora determinada, ya probé con el programador de tareas de windows pero solo abre excel y no los archivos, por lo que creo que debería ser una macro que incluya un control reloj.

1 respuesta

Respuesta
1
En este mismo sitio andaba por allí un código que insertaba un cronometro en (tiempo de diseño)
Debes pegarlo en un modulo:
'CRONOMETRO
Sub IniciaCronometro()
InicialTime = Now
Cronometro
End Sub
Sub DetieneCronometro()
Application.OnTime EarlTime, "Cronometro", , False
End Sub
Sub Cronometro()
EarlTime = Now + TimeSerial(0, 0, 1)
Application.OnTime EarlTime, "Cronometro"
[A1].Value = Now - InicialTime
End Sub
este cronometro pone su valor en celad A1, activas el cronometro con
Call IniciaCronometro
y lo detienes con :
Call DetieneCronometro
Ahora solo debes insertar las lineas que te permitan evaluar el contenido de A1 en relación a la hora en que deben abrirse tus archivos.
¿Y cómo abro los archivos?
Ahí me perdí...
en el sub del cronometro seria :
Sub Cronometro()
   EarlTime = Now + TimeSerial(0, 0, 1)
   Application.OnTime EarlTime, "Cronometro"
   [A1].Value = Now   ' MUESTRA LA HORA ACTUAL A CADA SEGUNDO
   If [A1].Text = "17:23:00" Then Workbooks.Open "C:\prueba.xls": call DetieneCronometro
End Sub
En este ejemplo abrirá el libro prueba.xls a las 17:23:00 eso si, si te fijas estará pasando la hora a la celda A1 y evaluando ese contenido con la hora. La otra forma seria:
Sub Cronometro()
   EarlTime = Now + TimeSerial(0, 0, 1)
  Application.OnTime EarlTime, "Cronometro"
  If Time = CDate("09:58:00") Then Workbooks.Open "C:\prueba.xls": Call DetieneCronometro
End Sub
De esa forma el usuario no "ve" en A1 el avance del cronometro ni puede intervenir la celda
abre el libro la hora indicada en este caso 09:58:00 y luego detiene el cronometro, si son varios libro para abrir, debes poner call Detienecronometro al final del último libro a abrir
para iniciar el cronometro podrías ponerlo en el evento open del libro,
Private Sub Workbook_Open()
   IniciaCronometro
End Sub
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas