Una macro de Excel para grabar un libro de trabajo antes de cerrarlo

  1. Software
  2. Oficina de Microsoft
  3. Excel
  4. Una macro de Excel para grabar un libro de trabajo antes de cerrarlo

Libro Relacionado

Macros de Excel para tontos

Por Michael Alexander

La macro presentada aquí es una excelente manera de proteger a los usuarios de cerrar inadvertidamente su archivo antes de guardarlo. Cuando se implementa, esta macro garantiza que Excel guarda automáticamente el libro de trabajo antes de cerrarlo.

Excel normalmente avisará a los usuarios que intentan cerrar un libro de trabajo no guardado, dándoles la opción de guardarlo antes de cerrarlo. Sin embargo, muchos usuarios pueden pasar por alto la advertencia y hacer clic en No sin querer, diciéndole a Excel que cierre sin guardar. Con esta macro, usted está protegiendo contra esto al guardar automáticamente antes de cerrar.

Cómo funciona la macro

El código se activa por el evento Antes de cerrar del libro de trabajo. Cuando intentas cerrar el libro de trabajo, este evento se dispara, ejecutando el código dentro de él. El meollo del código es simple – pregunta a los usuarios si quieren cerrar el libro de trabajo. La macro evalúa si el usuario ha hecho clic en Aceptar o en Cancelar.

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

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

Seleccione Case <some expression to check>Case Is = <some value> <do something>Case Is=<some other value> <dodo something else>Case Is=<some 3rd value> <do some 3rd thing>End Select

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

Private Sub Workbook_BeforeClose(Cancelar como booleano)'Paso 1: Activar la casilla de mensaje e iniciar la verificación Seleccionar Caso MsgBox("Guardar y cerrar?", vbOKCancel)'Paso 2: Botón Cancelar presionado, así que cancelar el cierre Caso Is = vbCancelar Cancelar = Verdadero'Paso 3: Botón Aceptar presionado, así que guardar el libro de trabajo y cerrar Caso Is = vbOK ActiveWorkbook.Save'Paso 4: Cerrar la declaración de Caso SeleccionadoFindeSeleccionar Submencionar

En el Paso 1, se activa el cuadro de mensaje como verificación de condiciones para la declaración Seleccionar caso. Utilice el argumento vbOKCancel para asegurarse de que los botones OK y Cancelar se presentan como opciones.

En el Paso 2, si el usuario hizo clic en Cancelar en el cuadro de mensaje, la macro le indica a Excel que cancele el evento Workbook_Close pasando True a Cancelar booleano.

Si el usuario hizo clic en el botón Aceptar en el cuadro de mensaje, el Paso 3 entra en vigor. En este caso, dígale a Excel que grabe el libro de trabajo. Y debido a que no fijó el valor de Cancelar booleano a Verdadero, Excel continúa con el cierre.

En el Paso 4, simplemente cierre la declaración de Seleccionar Caso. Cada vez que instancie un Caso Selecto, debe cerrarlo con una Selección Final correspondiente.

Cómo utilizar la macroinstrucción

Para implementar esta macro, debe copiarla y pegarla en la ventana Workbook_BeforeClose event code. Colocar la macro allí permite que se ejecute cada vez que intente cerrar el libro de trabajo:

  1. Active Visual Basic Editor presionando Alt+F11.
  2. En la ventana del proyecto, busque el nombre de su proyecto/libro de trabajo y haga clic en el signo más al lado para ver todas las hojas.
  3. Haga clic en ThisWorkbook.
  4. En la lista desplegable Evento, seleccione el evento Antes de Cerrar.
  5. Escriba o pegue el código en el módulo recién creado e ingrese su código en el evento Libro de Trabajo Antes de Cerrar.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *