Impedir la apertura de un libro en Excel después de una hora exacta

En la entrega anterior vimos una aplicación de seguridad en la cual, si se intentara abrir un libro de trabajo después de determinada hora, para el ejemplo, después de las 8, por medio de una macro se impedía el acceso al libro, más exactamente el libro se cerraba y por supuesto no era posible trabajar en este. Un inconveniente que se puede presentar, es que la macro toma la hora “redonda” del sistema, es decir, en ese mismo ejemplo si en la hora del sistema son las 8:40, la macro no tiene efecto alguno, puesto que toma la hora que en este caso son las 8 y 8 no es mayor a 8, es igual. Para resolver esto, es necesario adicional al condicional el operador lógico AND con el cual podemos adicionar que además de que la condición tenga en cuenta la hoja, también tenga en cuenta los minutos para que de esta manera indiquemos la hora exacta después de la cual no debe ser posible trabajar en el archivo. Para lograr este objetivo, es necesario trabajar con el evento Open, el cual hace referencia a la acción de ejecutar códigos de manera automática al abrir el libro de trabajo.

Lo primero que vamos a hacer es ingresar al Editor de Visual Basic con la combinación de teclas Alt + F11 y desde el explorador de proyectos, es necesario dar doble clic sobre el Objeto ThisWorkbook:

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()

If Hour(Now) > 20 And Minute(Now) > 30 Then ThisWorkbook.Close

End Sub

Queda de la siguiente manera en el editor VBA:

Veamos lo que significan cada una de las líneas:

  1. La primera línea Private Sub Workbook_Open(), indica el inicio de la macro la cual se ejecutará automáticamente al abrirse el libro de trabajo.
  2. En la segunda aplicamos el condicional IF en el cual se aplican dos condiciones, una para validar si la Hora (Hour) en que se abre el libro (Now) es mayor a 20 y la otra para validar si los minutos (Minute) en que se intenta abrir el libro (Now) sea mayor a 30, es decir, las 8:30 pm, se ejecute el Método Close que ya hemos visto para el Objeto Workbook y por tanto no sea posible trabajar el este.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub).

Ahora vamos a Excel, guardamos y cerramos y posteriormente lo abrimos; solo en caso de que al intentar abrirlo la hora del sistema sea mayor a las 8:30 pm, el libro se cerrará.

Descargar archivo de trabajo.

Contenido relacionado:
Compartirlo
Gerencie.com en su correo.

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


Déjenos su opinión

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.