EJECUTAR macro a cierta fecha y a cierta hora

Necesito una macro que se ejecute periódicamente

Que en automático se ejecute cada día 1 de cada mes alas 12 del medio día... Esto que sea automático sin necesidad de un botón, osea que siendo las 12 este sólito se ejecute como bien mencione al 12 medio día y cada día 1 de cada mes

1 Respuesta

Respuesta
1

H o l a:

En VBA el código sería así:

En los eventos de ThisWorkbook:

Private Sub Workbook_Open()
'Por.Dam
    VerificarHora
End Sub

Significa que cuando abres el libro se ejecuta la macro VeriricarHora.


Ahora en un módulo:

Sub VerificarHora()
'Por.Dante Amor
    If Hoja3.[A1] <> Day(Date) Then
        Hoja3.[A1] = ""
        Hoja3.[B1] = ""
    End If
    If Day(Date) = 1 Then
        If Hoja3.[B1] = "" Then
            If Time >= TimeSerial(12, 0, 0) Then
                Hoja3.[A1] = Day(Date)
                Hoja3.[B1] = "x"
                macro1
            End If
        End If
    End If
    Application.OnTime Now + TimeValue("00:01:00"), "VerificarHora"
End Sub

La macro VeriricarHora, se ejecutaría cada minuto, todo el día, todos los días, mientras el libro esté abierto y mientras la macro no sea detenida.

Entonces cada minuto revisará el día y la hora, si es día 1 y la hora es igual a las 12 del medio día, se ejecuta la macro1.

Como el tiempo no es exacto a las 12:00, ya que la macro se está ejecutando cada minuto, puede ser que revise la hora a las 11:59:30 y la siguiente revisión será a las 12:00:30, entonces ya no son las 12:00:00 en punto, por lo que la condición sería si es mayor o igual a 12:00:00. Es por eso que en Hoja3, se guarda el día y un indicador de que la macro ya se ejecutó, es para que no se ejecute varias veces el mismo día.

Cuando el día cambie, entonces volverán los indicadores a "" y si es día 1, entonces se ejecutará nuevamente la macro, solamente una vez en el día.


Todo lo anterior es el código y el modo del funcionamiento. Pero no es nada recomendable tener una macro en ejecución todo el tiempo (latente), ejecutándose cada minuto, o cada segundo, eso provocará que los cálculos en tu libro sean más lentos.


Para eso te recomiendo que programes una tarea en windows.

Inicio / Todos los programas / Accesorios / Herramientas / Tareas programadas

En la siguiente ventana presiona doble click sobre Agregar tarea programada:

En la siguiente ventana, selecciona la aplicación de Microsoft Excel, Presiona el botón Examinar, selecciona el archivo que contiene la macro que quieres ejecutar (la macro deberá estar en el evento open del libro). Siguiente

Selecciona el periodo: Mensualmente. Siguiente

Hora de inicio: 12:00:00. Siguiente

Día 1. Siguiente

Pon tu usuario y un password. Siguiente

Finalizar.

La macro que se ejecute al abrir el libro, al terminar, deberá cerrar el libro.


S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas