Una macro de Excel para guardar un libro antes de cerrar

La macro que aquí se presenta es una excelente manera de proteger a los usuarios de forma inadvertida cerrar su archivo antes de guardar. Cuando se aplique, esta macro garantiza que Excel guarda automáticamente el libro antes de cerrarlo.

Normalmente Excel advertir a los usuarios que están tratando de cerrar un libro que no son salvos, dándoles la opción de guardar antes de cerrar. Sin embargo, muchos usuarios pueden volar más allá de la advertencia y sin querer hacer clic en No, diciendo a Excel para cerrar sin guardar. Con esta macro, está protegiendo contra esta guardando automáticamente antes de cerrar.

Cómo funciona el macro

El código se activa por eventos BeforeClose del libro. Cuando intenta cerrar el libro, este evento se desencadena, que ejecuta el código dentro. El quid del código es simple - se pregunta a los usuarios si quieren cerrar el libro. La macro luego evalúa si el usuario hace clic en Aceptar o Cancelar.

El mensaje que aparece cuando intenta cerrar el libro.
El mensaje que aparece cuando intenta cerrar el libro.

La evaluación se hace con una instrucción Select Case. La instrucción Select Case es una alternativa a la instrucción If-Then-Else, que le permite realizar comprobaciones de estado en sus macros. La construcción básica de una instrucción Select Case es simple:

Select Case Case Is = Case Is =Case Is =End Select

Con una instrucción Select Case, puede realizar muchas verificaciones condicionales. En este caso, usted simplemente está mirando para Aceptar o Cancelar. Echa un vistazo al código:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Paso 1: Active el cuadro de mensaje e iniciar el checkSelect Caso MsgBox ("Guardar y cerrar?", VbOKCancel)' Paso 2: pulsa el botón Cancelar, para cancelar la closeCase Es = vbCancelCancel = True ' Paso 3: botón OK pulsada, así que guarda el libro y closeCase Es = vbOKActiveWorkbook.Save'Step 4: Cierre su Select Case statementEnd SelectEnd Sub

En el paso 1, se activa el cuadro de mensaje como la comprobación de la condición de la instrucción Select Case. Utiliza argumento vbOKCancel para asegurar que el botones Aceptar y Cancelar se presentan como opciones.

En el paso 2, si el usuario hace clic en Cancelar en el cuadro de mensaje, la macro le dice a Excel para cancelar el evento Workbook_Close pasando Fiel al Cancelar Boole.

Si el usuario hace clic en el botón Aceptar en el cuadro de mensaje, Paso 3 entre en vigor. Aquí, le dices a Excel para guardar el libro. Y porque no configuró el Cancelar booleano True, Excel continúa con el cierre.

En el paso 4, sólo tiene que cerrar la instrucción Select Case. Cada vez que una instancia de un Select Case, debe cerrarlo con un correspondiente End Select.

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 no 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 guardar un libro antes de cerrar