fbpx

Ejecutar macro a una hora determinada

Un saludo cordial!!!

En esta ocasión te voy a mostrar una interesante función en Excel, te ayuda a ejecutar una macro a una hora determinada, o al transcurrir x tiempo, el método es el siguiente:

Application.OnTime

Esta función sirve para poder programar una función para ejecutarse a una determinada hora o a ciertos minutos.

Te puede servir simplemente para utilizarlo como un recordatorio de reuniones o de llamadas.

Lo puedes combinar con una función de envío de correo para que a cierta hora envíe un correo automáticamente, realmente puedes hacer lo que quieras, te la explico.

EJECUTAR MACRO A UNA HORA DETERMINADA


Explicación de la función Application.OnTime

Application.OnTime [hora  a la cual quieres ejecutarlo], [Función que quieres ejecutar] 

CODIGO:

Este ejemplo de código, ejecuta la función «llamada» a las 10:15 de la mañana.

Sub evento_a_una_hora_programada()
    Application.OnTime TimeValue("10:15:00"), "llamada"
End Sub

Private Sub llamada()
    MsgBox "[Recordatorio]---Debes llamar a Luis", vbInformation
End Sub

Pasos a seguir

  1. Crear una función el cual es el evento que quieres ejecutar a cierta hora, en este caso la función «llamada«.
  2. Crear una función que es la que va a programar el evento, en este caso la función «evento_a_una_hora_programada«
  3. Ejecuta la función » evento_a_una_hora_programada» para realizar la programación

EJECUTAR FUNCION EN X MINUTOS

Esta parte utiliza la misma función application.OnTime con los 2 parámetros pero tiene algo particular.

Lo único que cambia es el primer parámetro, este debes adicionarle la función NOW y luego sumarle los segundos o minutos que quieres adicionar para ejecutar la función. Por ejemplo:

Quieres ejecutar la función en 30 minutos, entonces debes en el primer parámetro colocar NOW + (TimeValue(«00:30:00»).

Quieres ejecutar la función en 3 horas, entonces debes en el primer parámetro colocar NOW+ (TimeValue(«03:00:00»).

CODIGO

Este ejemplo de código, ejecuta la función «aviso» en 15 minutos.

Sub reunion_en_15_minutos()
    Application.OnTime Now + TimeValue("00:15:00"), "aviso"
End Sub
Private Sub aviso()
    MsgBox "Es hora de la reunión", vbInformation
End Sub

DESCARGAR EJEMPLO

En el siguiente link puedes descargar un sencillo ejemplo, si tienes alguna duda dirígete al formulario de Contacto

Para descargar el archivo utilizado es necesario estar registrado. Acá Puedes Registrarte y si ya estas registrado puedes ingresar a tu cuenta de usuario.

Deja un comentario