30 Macros útiles y sencillas: No abrir libro después de determinada hora

Vamos a seguir con macros de aplicación sobre seguridad, en esta ocasión vamos a ver cómo podemos restringir el acceso a un archivo dependiendo de la hora del sistema, asi que vamos a suponer que según el horario laboral de las oficinas de servicio, los archivos no pueden ser accedidos después de las 5 de la tarde.

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

If hora > 17 Then

MsgBox "No es horario para abrir el archivo"

ActiveWorkbook.Save

ActiveWorkbook.Close

End If

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 por otras macros

Workbook: Corresponde a la indicación de que la macro se aplicará sobre el libro de Excel (Workbook).

Open: Corresponde al evento Abrir, o en otras palabras cuando se abra el libro de trabajo.

En resumen, esta primera línea se interpreta como macro que se ejecutará al abrir 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 número (incluido decimales) para poder aplicar el resto de la macro.

La tercera línea es la aplicación de un condicional IF, donde se pregunta si el valor que hay almacenado en la variable “hora” es mayor a 17 se deben ejecutar unas líneas de código. El valor 17 corresponde a la hora 5 de la tarde en formato de 24 horas.

La cuarta línea se ejecutará solo si el condicional IF anterior es VERDADERO. Esta línea lo que hace es presentar un mensaje que informa que no se puede acceder al archivo.

La quinta línea se ejecutará solo si el condicional IF es VERDADERO y lo que hace esta línea es guardar el archivo para poder cerrarlo luego sin problema

La sexta línea solo se ejecutará si el condicional IF es VERDADERO y lo que hace es cerrar el archivo para que no pueda ser utilizado.

La penúltima línea marca el final del condicional IF

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

Ahora vamos a probar la macro; primero cerramos el libro de trabajo, luego lo ubicamos por el explorador de Windows y lo abrimos nuevamente y dependiendo de la hora de nuestro sistema:

Antes de las 5 de la tarde:

Vemos que no hay inconveniente para trabajar con el archivo pero después de las 5 de la tarde:

Asi que dependiendo de la hora límite que requieran ustedes, simplemente es cambiar el valor 17 por el que necesiten.

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

Una opinión
  1. gabriel dice:

    me parecio muy util el archivo, y si quisiera limitar el dia o una vez cumplida una fecha como deberia de ser?

    saludos.

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.