Ejecutar Macro según Hora del sistema

02/11/2006 - 22:14 por Pablo Fdez. | Informe spam
Hola a todos.
Necesito ejecutar varias macros ( Macro1 a Macro6) automáticamente en 6
momentos diferentes del día.
La celda (A1) contiene la hora de ejecución de la macro. Esta hora es
variable.

He probado con alguna idea de este foro comparando el valor de la celda (A1)
con el valor de la celda ("Time") que contiene el valor de la hora actual (
actualizada cada 10 seg.)

La comparación de las celdas da 6 valores ( 1 a 6) y cada valor ejecuta una
macro.
El problema es que la macro se ejecuta continuamente durante los 10 segundos
y me bloquea la hoja de trabajo.

Las macros funcionan correctamente de modo manual.

Alguna idea para solucionar este fallo?

Salu2
Pablo Fdez.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/11/2006 - 06:14 | Informe spam
hola, Pablo !

Necesito ejecutar varias macros (Macro1 a Macro6) automaticamente en 6 momentos diferentes del dia.
La celda (A1) contiene la hora de ejecucion de la macro. Esta hora es variable.
He probado con alguna idea de este foro comparando el valor de la celda (A1) con el valor de la celda ("Time")
que contiene el valor de la hora actual (actualizada cada 10 seg.)
La comparacion de las celdas da 6 valores (1 a 6) y cada valor ejecuta una macro.
El problema es que la macro se ejecuta continuamente durante los 10 segundos y me bloquea la hoja de trabajo.
Las macros funcionan correctamente de modo manual.
Alguna idea para solucionar este fallo?



sera necesario que expongas mas [y quizas no pocos] 'detalles' para poder 'apreciar' el porque del comportamiento que describes
[aunque no suena tan 'ilogico'... si consideras los siguientes puntos]:

1) cuantas veces al dia se podrian presentar los 'diferentes momentos' para ejecutar [solo] seis macros ?
[como para evaluar el porque de la necesidad de ejecutar procedimientos 'OnTime' CADA 10 SEGUNDOS] -???-

2) es -solo- probable que pudieras cambiar esos 10 segundos 'constantes' por otro tipo de eventos/cambios/... -?-

3) [seguramente] ya habras visitado: -> http://www.cpearson.com/excel/ontime.htm
o 'leido' comentarios acerca del comportamiento 'erratico' cuando se mezclan varios procedimientos 'OnTime' recursivos -?-

comentas algun detalle mas... 'preciso' ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Pablo Fdez.
05/11/2006 - 02:54 | Informe spam
"Pablo Fdez." wrote:

Hola a todos.
Necesito ejecutar varias macros ( Macro1 a Macro6) automáticamente en 6
momentos diferentes del día.
La celda (A1) contiene la hora de ejecución de la macro. Esta hora es
variable.

He probado con alguna idea de este foro comparando el valor de la celda (A1)
con el valor de la celda ("Time") que contiene el valor de la hora actual (
actualizada cada 10 seg.)

La comparación de las celdas da 6 valores ( 1 a 6) y cada valor ejecuta una
macro.
El problema es que la macro se ejecuta continuamente durante los 10 segundos
y me bloquea la hoja de trabajo.

Las macros funcionan correctamente de modo manual.

Alguna idea para solucionar este fallo?

Salu2
Pablo Fdez.

Hola Hector


Te pongo un ejemplo.
Distribuyo el dia en tramos de 8 horas ( mañana, tarde y noche) para dos
procesos productivos paralelos.
En celda A1 está la hora actual ( refrescada cada 10 sg)
En A2, A3 y A4 hay 3 horas distintas (ejemplo 8:00, 16:00 y 24:00)
En B2, B3 y B4 hay 3 horas distintas (ejemplo 7:00, 17:00 y 23:00)

La celda A5 toma valores 1, 2 o 3 si la hora Actual (A1) es igual A2, A3 o
A4 ( lo mismo para B5 con respecto de B2, B3 o B4)
El valor 1 en A5 dispara Macro1 (2 para Macro2 y 3 para Macro3)
El valor 1 en B5 dispara Macro4 (2 para Macro5 y 3 para Macro6)



¿ como aseguro que se disparen las macros en el momento exacto?
Respuesta Responder a este mensaje
#3 Francisco Parrilla
05/11/2006 - 06:10 | Informe spam
Podrias definir/mostrar cual es la macro que necesitas ejecutar y la version
de Windows que
manejas.
A partir de ver la macro quizas se pueda proporcionar alguna sugerencia
Saludos

Atte.
?T Francisco T?
http://groups.msn.com/ExcelVbaMacrosOffice

El verdadero buscador crece y aprende, y descubre que siempre es el
principal responsable de lo que sucede.
Jorge Bucay

La oscuridad nos envuelve a todos, pero mientras el sabio tropieza en alguna
pared, el ignorante permanece tranquilo en el centro de la estancia.
Anatole France
Respuesta Responder a este mensaje
#4 Héctor Miguel
05/11/2006 - 09:34 | Informe spam
hola, Pablo !

1) 'sigo sin ver'... la 'necesidad'... de estar 'disparando' macros... -> cada 10 segundos :-(( [me explico]:

a) si la hora en 'A1' la estas 'refrescando' cada 10 segundos...
cada 10 segundos las celdas 'A5' Y 'B5' van a estar 'mostrando' 1,2,3 o... 4,5,6
b) lo anterior significa que cada 10 segundos se esta/ria disparando una o dos macro/s [1,2,3,4,5 o 6]
c) sin mencionar que [como ya has comentado] la 'operacion' se vuelve 'un fastidio' [en cuanto se inicia cualquier macro] :\

2) serviria si comentas que tipo de procedimientos se ejecutan con cada macro [1,2,3,4,5 y 6] -?-
[ademas de] comentar que significa [+/- exctamente]... -> 'el momento exacto' [de lanzar una o dos macros] -???-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
Te pongo un ejemplo.
Distribuyo el dia en tramos de 8 horas (ma#ana, tarde y noche) para dos procesos productivos paralelos.
En celda A1 esta la hora actual (refrescada cada 10 sg)
En A2, A3 y A4 hay 3 horas distintas (ejemplo 8:00, 16:00 y 24:00)
En B2, B3 y B4 hay 3 horas distintas (ejemplo 7:00, 17:00 y 23:00)
La celda A5 toma valores 1, 2 o 3 si la hora Actual (A1) es igual A2, A3 o A4
lo mismo para B5 con respecto de B2, B3 o B4)
El valor 1 en A5 dispara Macro1 (2 para Macro2 y 3 para Macro3)
El valor 1 en B5 dispara Macro4 (2 para Macro5 y 3 para Macro6)
como aseguro que se disparen las macros en el momento exacto?
Respuesta Responder a este mensaje
#5 Pablo Fdez.
12/11/2006 - 12:31 | Informe spam
Hola de nuevo Hector
Quiero reconducir de nuevo la consulta.
Siguiendo tus indicaciones y desde http://www.cpearson.com/excel/ontime.htm
he logrado crear un reloj sobre el que comparar los 6 momentos en que se
disparan mis macros.
El reloj tiene una precisión de 1 seg. y he conseguido disparar mis macros
en los 6 momentos diarios que deseo.

En Hoja1 tengo este codigo ( en "Trigger" esta el valor de la comparación
entre 1 y 6)

-Inicio-
Private Sub Worksheet_Calculate()
Worksheet_Change Range("Trigger")
End Sub

Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = Range("Trigger").Address Then

Select Case Target.Value
Case 1
FinTurnoMañanaD1

Case 2
FinTurnoTardeD1

Case 3
FinTurnoNocheD1

Case 4
FinTurnoMañanaD2

Case 5
FinTurnoTardeD2

Case 6
FinTurnoNocheD2

End Select
End If
End Sub
Fin

En Modulo1 tengo este código

-Inicio--
Sub FinTurnoMañanaD1()
Range("O41:Q41").Select
Application.CutCopyMode = False
Selection.Copy
Range("O45:Q45").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
MsgBox "Fin Turno Mañana D1"

End Sub

Sub FinTurnoMañanaD1()
Range("O41:Q41").Select
Application.CutCopyMode = False
Selection.Copy
Range("O46:Q46").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
MsgBox "Fin Turno Mañana D1"

End Sub


Fin
Las restantes 4 macros son identicas y solo cambia el rango de pegado.

El problema es que una vez disparada la macro, esta se autoejecuta de manera
continua al estar evaluando o autocalculando los cambios en Hoja1.
¿como lograría evitar esta ejecución repetitiva?

Los datos a copiar (Range("O41:Q41")) proceden de una tabla dinámica que se
actualiza cada 2 minutos de de una consulta externa.

"Héctor Miguel" wrote:

hola, Pablo !

1) 'sigo sin ver'... la 'necesidad'... de estar 'disparando' macros... -> cada 10 segundos :-(( [me explico]:

a) si la hora en 'A1' la estas 'refrescando' cada 10 segundos...
cada 10 segundos las celdas 'A5' Y 'B5' van a estar 'mostrando' 1,2,3 o... 4,5,6
b) lo anterior significa que cada 10 segundos se esta/ria disparando una o dos macro/s [1,2,3,4,5 o 6]
c) sin mencionar que [como ya has comentado] la 'operacion' se vuelve 'un fastidio' [en cuanto se inicia cualquier macro] :\

2) serviria si comentas que tipo de procedimientos se ejecutan con cada macro [1,2,3,4,5 y 6] -?-
[ademas de] comentar que significa [+/- exctamente]... -> 'el momento exacto' [de lanzar una o dos macros] -???-

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
> Te pongo un ejemplo.
> Distribuyo el dia en tramos de 8 horas (ma#ana, tarde y noche) para dos procesos productivos paralelos.
> En celda A1 esta la hora actual (refrescada cada 10 sg)
> En A2, A3 y A4 hay 3 horas distintas (ejemplo 8:00, 16:00 y 24:00)
> En B2, B3 y B4 hay 3 horas distintas (ejemplo 7:00, 17:00 y 23:00)
> La celda A5 toma valores 1, 2 o 3 si la hora Actual (A1) es igual A2, A3 o A4
> lo mismo para B5 con respecto de B2, B3 o B4)
> El valor 1 en A5 dispara Macro1 (2 para Macro2 y 3 para Macro3)
> El valor 1 en B5 dispara Macro4 (2 para Macro5 y 3 para Macro6)
> como aseguro que se disparen las macros en el momento exacto?



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