Habilitar guardado al cerrar libro con palabra clave

Vamos a continuar con la aplicación de Eventos y Objetos complementando con Propiedades para ver el uso de la combinación de estos tres elementos que ya desarrollamos en las entregas anteriores; en esta ocasión se trata de diseñar un sistema que solo habilite el guardado de los cambios realizados a un libro de trabajo siempre  cuando al momento de guardar el libro ingrese la palabra clave requerida para ello. En esta entrega vamos a utilizar el evento BeforeSave, el Método Close y la propiedad SaveChanges del Objeto Workbook.

Evento BeforeSave: Al ingresar cualquier macro en este Evento, estas se ejecutarán automáticamente al momento de dar la instrucción Guardra Libro de trabajo.

Método Close: Con la aplicación de este método, lo que estamos indicando desde VBA es la opción de cerrar el libro de Excel; en caso de que el libro haya sufrido cambios desde la última vez que se guardó, el sistema presenta la ventana de diálogo donde pregunta si se desea guardar los cambios o cancelar la acción.

Propiedad Save: Con la aplicación de esta propiedad, lo que podemos configurar es el proceso de guardado automático de los cambios realizados en el libro de trabajo realizados después del último proceso de cambio; esto con el fin de prevenir la pérdida de datos nuevos o cambios que realicemos sobre el libro.

Desde Excel abrimos el Editor VBA (Alt + F11), y damos doble clic en el Objeto ThisWorkbook donde pegamos el siguiente código:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

PalabraClave = InputBox("Por favor ingrese la palabra clave para proceder a Guardar")

If PalabraClave <> "gerencie" Then

MsgBox ("Datos de autenticación incorrectos")

ActiveWorkbook.Close Savechanges:=False

End If

End Sub

Queda de la siguiente manera en el Módulo:

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

  1. La primera línea Sub Workbook_BeforeSave (), indica el inicio de la macro.
  2. En esta segunda línea estamos solicitando que se ingrese una Palabra Clave mediante un cuadro de mensaje (que veremos más adelante su uso).
  3. En la tercera línea aplicamos la estructura condicional IF para validar SI la palabra clave no coincide con la palabra “gerencie” y en caso tal se ejecuta la línea 4
  4. En esta línea se presenta un mensaje informando que los datos de autenticación no son correctos.
  5. Luego de informar que los datos no son correctos se aplicar el método Close del objeto ActiveWorkbook para cerrar el libro de trabajo actual con la propiedad Savechanges en False (False)
  6. La última línea marca el fin (End) de la Macro o Subrutina (Sub).

Ahora al cerrar el libro nos pedirá la palabra clave que permite cerrar el libro y guardar los cambios en caso de coincidir y en caso de no coincidir la información el libro se cerrará sin guardar cambios.

Descargar archivo

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.