Excel - macro para una hora concreta

 
Vista:

macro para una hora concreta

Publicado por aklamath (92 intervenciones) el 12/08/2007 22:47:20
hola buenas tardes, me haria falta una macro k se me ejecute a una hora determinada, he buscado en la ayuda excel algo del ontime o algo asi pero no he encontrado nada, y en google tampoco, por eso agradeceria algo de ayuda

la idea es k una macro k tengo grabada se me ejecute a las 10:00 a.m.

gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:macro para una hora concreta

Publicado por Abraham Valencia (2415 intervenciones) el 13/08/2007 16:39:08
Pues Application.OnTime solo funciona con el archvio abierto, si esta cerrado hay que recurrir al programador de tareas del windows.

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por mrproper (127 intervenciones) el 18/08/2007 11:26:38
La verdad es ke no entiendo mucho de esto, pero he encontrado esto por ahi, ke parece ke es lo ke buscas.

http://www.newsgroups-index.com/group/microsoft_-public_-es_-vba_l164.html

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por JuanC (792 intervenciones) el 21/08/2007 00:55:21
Haber si esto es lo que necesitás....

Option Explicit
Option Private Module

'//By JuanC - 20 de Agosto 2007

'//Observaciones: el archivo debe estar abierto
'// antes de las 10am y hasta por lo
'// menos las 10:01am

Private Declare Function apiSetTimer Lib "user32" Alias "SetTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function apiKillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Private lTimerID As Long

Sub a_las_10_00()
'//Tu código
End Sub

Private Sub TimerCallBack(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
Dim H As Date
On Error Resume Next
H = Format(Time, "Hh:Mm:SsAM/PM")
If H >= CDate("10:00:00AM") Then
Call apiKillTimer(0, lTimerID)
If H <= CDate("10:01:00AM") Then
Call a_las_10_00
End If
End If
End Sub

Sub auto_open()
On Error Resume Next
lTimerID = apiSetTimer(0, 0, 1000, AddressOf TimerCallBack)
End Sub

Sub auto_close()
On Error Resume Next
Call apiKillTimer(0, lTimerID)
On Error GoTo 0
End Sub

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por aklamath (92 intervenciones) el 21/08/2007 14:46:35
me funciona bien, pero si quiero k se ejecuten 2 macros diferentes a horas diferentes ?

he intentado crear 2 pero no me funciona, quizas de uno agregar un poco mas para hacer 2 y no como he hecho yo hacer 2 enteros.

Option Explicit
Option Private Module

'//By JuanC - 20 de Agosto 2007

'//Observaciones: el archivo debe estar abierto
'// antes de las 10am y hasta por lo
'// menos las 10:01am

Private Declare Function apiSetTimer Lib "user32" Alias "SetTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function apiKillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Private lTimerID As Long

Sub pruebas()
Range("C4:D4").Select
Selection.Copy
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D4").Select
Application.CutCopyMode = False
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("C2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Empresa"
Range("D2").Select
End Sub

Private Sub TimerCallBack(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
Dim H As Date
On Error Resume Next
H = Format(Time, "Hh:Mm:SsAM/PM")
If H >= CDate("07:25:00AM") Then
Call apiKillTimer(0, lTimerID)
If H <= CDate("07:26:00AM") Then
Call pruebas
End If
End If
End Sub

Sub auto_open()
On Error Resume Next
lTimerID = apiSetTimer(0, 0, 1000, AddressOf TimerCallBack)
End Sub

Sub auto_close()
On Error Resume Next
Call apiKillTimer(0, lTimerID)
On Error GoTo 0
End Sub

este es uno k llama a una macro k se dice: pruebas
pero para hacer otro a las ... por ejemplo a las 09:00 para k llame a una macro k
se llame: a_las_09_00
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por JuanC (792 intervenciones) el 21/08/2007 16:24:00
hay algo que odio (en este y otros casos) y es por qué no planteas bien el problema desde el principio
decís que necesitás ejecutar una macro a las 10:00AM y ahora resulta
que son dos macros (tal vez más) y a otra hora
por otro lado, si prestaras un poco de atención al código verías que no es
cosa de otro mundo para modificarlo y adaptarlo a cualquier cosa...

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por aklamath (92 intervenciones) el 21/08/2007 17:37:08
no te enfades juanc ;-) , pues esto tiene una razon muy sencilla !

la razon esk este excel, tiene 8 macros,

k se llaman:

a_las_10_00
a_las_11_00
a_las_12_00
a_las_13_00
a_las_14_00
a_las_15_00
a_las_16_00
a_las_17_00

y cada una debe ejecutarse a la misma hora k su nombre de la macro.

osea la a_las_10_00 se debe ejecutar a las 10:00 a.m.
la k se llama a_las_11_00 se debe ejecutar a las 11:00 a.m.
etc...

y la razon por la cual no dije k tenia mas de una macro, era pq pense k unicamente daria mas faena, pudiendolo yo hacer las otras con el simple ejemplo de una de ellas k se ejecute a la hora indicada, pero resulta k no lo he sabido hacer.

no creo k sea motivo para odiar... pero bueno... yo simplemente queria no daros mas faena de la k ya podais tener !

y lo de la hora, lo cambie, por el simple hecho de probarlo a esa hora !! ya k a las 10:00 no estaba en casa y no iba a esperarme pudiendolo modificar para ver si me funcionaba la macro !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:macro para una hora concreta

Publicado por mrproper (127 intervenciones) el 23/08/2007 18:42:51
Akla, creo ke se ha enfadao un pokillo. Yo le doy el coñazo bastante pero creo ke no se me ha puesto asi nunca... O eso creo.

Un saludo a todos, y paz !!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar