Una macro de Excel para prevenir libros se cierre

Hay momentos en los que no desea un usuario de cerrar un libro de Excel sin necesidad de introducir una pieza específica de datos. En estas situaciones, sería útil para negar al usuario la capacidad de cerrar el libro hasta que la célula diana se rellena (como se muestra aquí). Aquí es donde esta macro ingenioso entra.

Evitar el cierre hasta que se rellena una celda específica.
Evitar el cierre hasta que se rellena una celda específica.

Cómo funciona el macro

Este código se activa por eventos BeforeClose del libro. Cuando intenta cerrar el libro, este evento se desencadena, que ejecuta el código dentro. Esta macro comprueba si la célula diana (célula C7, en este caso) está vacía. Si está vacío, se cancela el proceso de cierre. Si C7 no está vacía, el libro se guarda y se cierra:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Paso 1:.. Compruebe si la celda C7 es Sheets blankIf ("Sheet1") Range ("C7") Valor = "" Then'Step 2: Si la celda está en blanco, cancelar la cerca y decirle userCancel = TrueMsgBox "C7 celular no puede estar en blanco" "Paso 3: Si la celda no está en blanco, guardar y closeElseActiveWorkbook.Close SaveChanges: = TrueEnd IfEnd Sub

Paso 1 comprueba si C7 está en blanco.

Si C7 está en blanco, Paso 2 entra en vigor, la cancelación de la estrecha proceso por el que pasa Fiel al Cancelar Boole. Paso 2 también activa un cuadro de mensaje que notifica al usuario de su estupidez (bueno, no es así de dura, en realidad).

En el paso 3, si la celda C7 no está en blanco, el libro se guarda y se cierra.

Cómo utilizar la macro

Para implementar esta macro, tiene que copiar y pegar en la ventana de código de evento Workbook_BeforeClose. La colocación de la macro aquí permite que se ejecute cada vez que se intenta cerrar el libro:

  1. Activar el Editor de Visual Basic presionando Alt + F11.

  2. En la ventana de proyecto, encuentra tu proyecto / nombre del libro y haga clic en el signo más junto a él para ver todas las hojas.

  3. Haga clic en ThisWorkbook.

  4. En la lista desplegable Evento, seleccione el evento BeforeClose.

  5. Escriba o pegue el código en el módulo recién creado.

    Ingresa tu código en el evento Workbook BeforeClose.
    Ingresa tu código en el evento Workbook BeforeClose.



» » » » Una macro de Excel para prevenir libros se cierre