30 macros útiles y sencillas: Ejecutar macro según día y hora

Ya vimos como programar la ejecución de una macro de acuerdo a una hora especificada donde en dicho ejemplo se ejecutaba la macro siempre antes del medio día que era la hora del almuerzo; ahora vamos a suponer que de Lunes a Miércoles la hora del almuerzo es a Medio día, pero los Jueves y Viernes es a las 2 de la tarde, así que vamos a programar la macro para que dependiendo del día de la semana se ejecute una u otra macro.

Lo primero que vamos a hacer es ingresar al Editor de Visual Basic y para ello desde la primera hoja utilizaremos la combinación de teclas Alt + F11:

Nos ubicamos en la ventana del Explorador de Proyectos que tenemos en el panel izquierdo de la ventana del Editor de Visual Basic y damos doble clic sobre el Objeto ThisWorkbook y pegamos el siguiente código:

Private Sub Workbook_Open()

Hora = (Now - Int(Now)) * 24

Select Case Hora

Case 6 To 12

MsgBox "Buenos días"

Case 12 To 18

MsgBox "Buenas tardes"

Case Else

MsgBox "Buenas noches"

End Select

End Sub

La primea línea marca el principio de la macro y vamos a desglosar esta línea para entender un poco mejor esta macro:

Private Sub: significa Subrutina (Sub) o macro de acceso Privado (Private) y este acceso se aplica cuando se intenta ejecutar desde otra macro.

Workbook: Corresponde a la indicación de que la macro se aplicará sobre el libro de Excel que en ingles se denomina Workbook.

Open: Corresponde al evento Abrir, es decir, cuando se abra el libro de trabajo se van a ejecutar unas líneas de código.

En resumen, esta primera línea se interpreta como macro que se ejecutará al momento de abrirse el libro de trabajo.

La segunda línea corresponde a una conversión que se hace de la hora en la que se abre el archivo para almacenarla en una variable que llamamos “Hora”; la conversión se trata de dejar la hora en formato de 24 horas en número (incluido decimales) para poder aplicar el resto de la macro

Las demás líneas que siguen, se usan para hacer una clasificación del valor que tenga la variable “Hora” donde, según ésta, se dará un mensaje (MsgBox) de saludo así:

  • En Caso (Case) de que el valor de la variable “Hora” este entre las 6 y las 12, el mensaje se “Buenos días”.
  • En Caso (Case) de que el valor de la variable “Hora” este entre las 12 y las 18, el mensaje se “Buenas tardes”.
  • En Caso (Case) de que el valor de la variable “Hora” sea diferente a los dos casos anteriores, el mensaje se “Buenas noches”.

La última línea End Sub marca el final de la macro

Ahora vamos a Excel, guardamos y cerramos y posteriormente lo abrimos para ver el resultado:

De acuerdo al horario en que aplique en sus países, deben modificar los valores de cada caso.

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.