Como ejecuto un modulo con la hora de mi PC

Que tal señor dante quisiera que me ayude con esta macros:

Mi problema se basa en que tengo un excel que le he puesto varios módulos en la macros
Sub MODULOS_1_()
Sub MODULOS_2_()
Sub MODULOS_3_()

El procesos de mis módulos corre perfectamente pero al ultimo antes de guardar mi Excel automáticamente le di una función
En un modulo “Sub MODULOS_4_() para que ejecute a la hora de mi PC, pero no se ejecuta y mi Excel solo se guarda .

Yo quiero saber que “Application. OnTime” debo utilizar para que al ejecutar mi modulo corra mi función siempre y cuando sea la hora de mi PC.

Sub MODULOS_4_()
Sheets("SEGUIMIENTO").Select
Application.OnTime TimeValue("14:13:00")
End Sub

1 respuesta

Respuesta
2

Puede con cualquiera de estas opciones:

Supongo que tienes algo así:

Sub macrox()
 MODULOS_1_
 MODULOS_2_
 MODULOS_3_
 MODULOS_4_
End Sub


Opción 1, se obtiene la diferencia de la hora de ejecución y la hora actual. La diferencia se pasa a la instrucción ontime, suponiendo que la hora de ejecución sea a las 6pm (TimeSerial(18, 0, 0)):

Sub macroy()
'Por.Dante Amor
    MODULOS_1_
    MODULOS_2_
    MODULOS_3_
    ahora = TimeSerial(18, 0, 0) - Time
    hora = Hour(ahora)
    minu = Minute(ahora)
    segu = Second(ahora)
    Application.OnTime Now + TimeValue(hora & ":" & minu & ":" & segu), "MODULOS_4_"
End Sub


Esta sería la Opción2, si son las 6pm o más, la macro MODULOS_4_ se ejecuta.

Sub macrox()
    MODULOS_1_
    MODULOS_2_
    MODULOS_3_
    If Time >= "06:00:00 p.m." Then
        MODULOS_4_
    End If
End Sub

Esta sería la opción3, después de ejecutar el MODULO3, ejecutas la macro REPETIR:

Sub macrox()
'Por.Dante Amor
    MODULOS_1_
    MODULOS_2_
    MODULOS_3_
    '
    REPETIR
End Sub

Esta es la macro REPETIR, esta macro se ejecutaría cada minuto y medio, estaría latente todo el tiempo, si al estar en ejecución son las 6 pm o más, entonces se ejecuta el MODULO4, se cancela el llamado a la macro REPETIR y termina la ejecución de la macro REPETIR.

Sub REPETIR()
'Por.Dante Amor
    If Time >= "06:00:00 p.m." Then
        On Error Resume Next
        MODULOS_4_
        Application.OnTime Now + TimeValue("00:01:30"), "REPETIR", False
        Exit Sub
    End If
    Application.OnTime Now + TimeValue("00:01:30"), "REPETIR"
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas