Cancelar ejecución de Macro a una hora Especificada. Objeto Application - Método OnTime

En la entrega pasada vimos cómo aplicar el método OnTime para programar la ejecución automática de una macro a determinada hora; en dicho ejemplo se enviaba un mensaje de saludo a las 6 pm. Pero supongamos que lo que ejecutara sea un proceso de envío masivo de correos pero que se deba interrumpir esta programación, es decir, que siendo las 5:30 de la tarde, sea necesario cancelar la macro luego de hacerse dado la orden. En este caso vamos a ver cómo se puede cancelar la orden desde VBA.

Método OnTime: Permite aplicar un control de tiempo para la ejecución de macros.

Desde Excel abrimos el Editor VBA (Alt + F11), y voy a realizar este ejemplo sobre la macro del ejercicio anterior, así que vamos al Módulo1 donde insertamos el código pasado:

Damos doble Clic en el nuevo módulo y pegamos al final de las dos macros que ya hay en este módulo el siguiente código:

Sub CancelarEjecucion()

Application.OnTime EarliestTime:=TimeValue("18:00:00"), Procedure:="Mensaje", Schedule:=False

End Sub

Queda de la siguiente manera:

Acá tenemos ya tres macros, la primera se llama EjecutarMacroalas6pm y la segunda Mensaje; veamos lo que significa cada línea de la macro 1

  1. La primera línea Sub EjecutarMacroalas6pm (), indica el inicio de la macro.
  2. En la segunda línea estamos utilizando del Objeto Application el método OnTime el cual se utiliza para operar macros automáticamente en función del tiempo. Para indicar el tiempo, utilizamos la función TimeValue en la que se indica la hora programada para ejecutar la macro Mensaje que se encuentra al final de esta primera macro.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

Para la macro 2 llamada Mensaje tenemos:

  1. La primera línea Sub Mensaje (), indica el inicio de la macro.
  2. En la segunda línea estamos lanzando un mensaje de bienvenida sencillo con el uso de la función MsgBox.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

 

Para la macro 3 llamada CancelarEjecuciontenemos:

  1. La primera línea Sub CancelarEjecucion (), indica el inicio de la macro.
  2. En la segunda línea estamos indicando los mismos parámetros de la Macro 1 pero observemos que al final de esta línea indicamos el valor False a la fecha indicada para la ejecución de la macro Mensaje, es decir, la Macro 2.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub)

Ahora solo queda dar clic en el botón de la macro de cancelación y con esto ya no se ejecutará la macro tal y como se había programado:

Descargar archivo de trabajo.

MÁS SOBRE

Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.

Siéntase libre de opinar

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.