Guardar cambios inexistentes (Microsoft Excel)
Probablemente le sucedió esto: abre un libro de trabajo, mira algunas de las hojas de trabajo y luego cierra el libro de trabajo. Como parte del cierre, Excel le pregunta si desea guardar los cambios, pero no realizó ningún cambio, solo miró a su alrededor. ¿Lo que da?
Internamente, Excel mantiene lo que comúnmente se llama una «bandera sucia». Esta bandera se establece cada vez que realiza algún tipo de cambio en un libro de trabajo.
Siempre que guarde el libro de trabajo, la bandera se borra. Si la marca está configurada cuando cierra el libro de trabajo, Excel le pregunta si desea guardar el libro.
Obviamente, la bandera sucia se puede configurar si realiza algún cambio explícito en un libro de trabajo, como editar una celda o modificar la estructura del libro de trabajo de alguna manera. Sin embargo, también se puede configurar incluso si no hace nada explícito. A veces, Excel hace algo que afecta el contenido del libro simplemente por el hecho de que lo abrió. Esto establece la bandera de sucio y, por lo tanto, activa la solicitud de ahorro.
Dos grandes culpables de realizar estos cambios automáticos son las funciones de la hoja de trabajo HOY y NOW. Estos devuelven la fecha del sistema y la hora del sistema, respectivamente. Cuando abre un libro por primera vez, se actualizan en el curso normal de recalcular. Dado que representan un cambio, Excel establece la bandera sucia. Estos son solo dos posibles culpables; hay otras funciones que pueden tener el mismo «este libro ha sido cambiado»
efecto. Una lista no exhaustiva incluye INDIRECT, OFFSET, RAND y RANDBETWEEN.
La bandera sucia también se puede configurar automáticamente si su libro de trabajo incluye enlaces a datos en otras hojas de trabajo. Excel recupera los datos, lo que representa un cambio en el libro que acaba de abrir. Excel no establece la bandera sucia si simplemente navega por el libro de trabajo, haciendo cosas como seleccionar celdas o cambiar a una hoja de trabajo diferente.
Una forma de solucionar el problema es eliminar lo que esté causando cambios en su libro de trabajo. Para la mayoría de las personas, esto simplemente no es práctico.
También puede agregar una macro automática que se ejecutará justo antes de que se cierre el libro de trabajo, como la siguiente, que debería ser parte del objeto ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWorkbook.Saved = True End Sub
Esta macro no hace más que borrar el indicador sucio (la propiedad Saved). Si bien este enfoque funcionará, existe un gran riesgo inherente al usarlo. Con la macro en su lugar, Excel nunca le preguntará si desea guardar los cambios al salir, incluso si se realizaron cambios legítimos en el libro de trabajo. Por lo tanto, debe recordar guardar explícitamente cualquier cosa en el libro de trabajo cada vez que realice cambios. Si no lo hace, puede perder parte de su trabajo.
Una variación de este enfoque, que es menos implacable con los cambios olvidados, es hacer que la macro sea realmente parte del procedimiento Workbook_Open para el objeto ThisWorkbook:
Private Sub Workbook_Open() ActiveWorkbook.Saved = True End Sub
Ahora, Excel abre el libro de trabajo, vuelve a calcular (incluida la realización de cambios basados en funciones como HOY y AHORA) y luego borra la bandera sucia. Si cierra de inmediato, no se le preguntará si desea guardar los cambios. Sin embargo, se le preguntará si desea guardar los cambios si realiza cambios después de que se haya ejecutado esta macro, en otras palabras, después de que la hoja de trabajo se haya abierto por completo.
Además de recalcular automáticamente las funciones que establecen el indicador sucio, también es posible que su libro de trabajo contenga una macro o dos que se ejecuten automáticamente cuando lo abra. Si la macro está realizando algún tipo de cambio en el libro de trabajo, naturalmente establecerá la bandera sucia. Puede consultar el Editor de VBA para ver si este es el caso.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (12352) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.
Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí: enlace: / excel-Saving_Non-Existent_Changes [Guardar cambios no existentes]
.