Una macro de excel para evitar que se cierre libros
Hay momentos en los que no desee 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 para cerrar el libro hasta que la célula diana se llena en (como se muestra aquí). Aquí es donde esta macro ingenioso entra en acción.
Video: Cómo cerrar Excel desde una macro
Cómo funciona la macro
Este código es desencadenada por el suceso 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ía, el proceso de cierre se cancela. Si C7 no está vacío, el libro se guarda y se cierra:
Video: Impedir la modificación de celdas editadas en Excel – VBA
Private Sub Workbook_BeforeClose (Cancel As Boolean) `Paso 1: Compruebe para ver si la celda C7 es Hojas blankIf ("sheet1").Distancia("C7") .Value = " Then`Step 2: Si la celda está en blanco, cancelar el cierre y decirle userCancel = TrueMsgBox "C7 célula 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 para ver si C7 está en blanco.
Si C7 está en blanco, Paso 2 entra en vigor, cancelando el proceso de cierre mediante el paso Fiel a la Boolean Cancelar. 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 intente cerrar el libro:
Activar el Editor de Visual Basic presionando ALT + F11.
En la ventana de proyecto, encontrar su nombre de proyecto / libro y haga clic en el signo más al lado de él para ver todas las hojas.
Haga clic en ThisWorkbook.
En la lista desplegable de eventos, seleccione el evento BeforeClose.
Video: Impedir cierre de formulario con el control X | VBA
Escribir o pegar el código en el módulo recién creado.
Introduzca su código en el evento de libro BeforeClose.Video: El libro de Excel que nunca se cierra.mp4