lunes, 16 de febrero de 2015

Evitar que excel pregunte si se desean guardar los cambios cuando se cierra un archivo

Supongamos que tenemos un archivo de excel con una macro, la cual abre otro archivo para leer y procesar datos contenidos en el mismo. Si sobre ese archivo hacemos cambios y lo cerramos, nos aparecerá un recuadro preguntándonos si deseamos guardar los cambios realizados:

Guardar cambios al cerrar en excel
Guardar cambios al cerrar en excel

Mientras aparece este cuadro de dialogo la ejecución de la macro se pausará hasta que el usuario seleccione una opción. Si no necesitamos que se guarden los cambios en el archivo y queremos prescindir de esta funcionalidad, podemos omitir este recuadro cerrando el archivo con la siguiente línea:

Workbooks(NombreArchivo).Close savechanges:=False

Con el parámetro savechanges:=False le estamos diciendo a Excel que no pregunte por los cambios realizados; sin embargo, podrán aparecer otros mensajes como por ejemplo el que nos dice que el portapapeles tiene mucha información y que si deseamos tenerla disponible cuando cerremos el archivo; para evitar estos mensajes extras debemos añadir dos líneas más:

Application.DisplayAlerts = False ' Desactivo todo tipo de alertas
Workbooks(Exporte).Close savechanges:=False ' Cierro el archivo
Application.DisplayAlerts = True ' Activo de nuevo todas las alertas

Con lo anterior simplificamos la ejecución de la macro evitando al usuario tener que estar haciendo clic cada que se cierre un archivo, mucho más si la cantidad de archivos que se abren y cierra es considerable.