Come evitare che Excel ti chieda se salvare la cartella di lavoro anche se non hai apportato modifiche

Probabilmente ti è già successo questo: apri una cartella di lavoro, guardi alcuni fogli di lavoro e poi chiudi la cartella di lavoro. Durante la chiusura, Excel ti chiede se desideri salvare le modifiche, ma non hai apportato alcuna modifica: ti sei solo guardato intorno. Qual è la causa di questa richiesta?

Internamente, Excel mantiene quello che viene comunemente chiamato “dirty flag“. Questo flag viene impostato ogni volta che si apporta una sorta di modifica a una cartella di lavoro. Ogni volta che si salva la cartella di lavoro, il flag viene cancellato. Se il flag è impostato quando chiudi la cartella di lavoro, Excel ti chiede se desideri salvare la cartella di lavoro.

Il flag può ovviamente essere impostato se si apportano modifiche esplicite a una cartella di lavoro, ad esempio modificando una cella o modificando in qualche modo la struttura della cartella di lavoro. Tuttavia, può anche essere impostato anche se non fai nulla di esplicito. A volte Excel fa qualcosa che influisce sul contenuto della cartella di lavoro solo in virtù del fatto che l’hai aperta. Ciò imposta il flag e quindi attiva la richiesta di salvataggio.

Due grandi colpevoli nell’apportare tali modifiche automatiche sono le funzioni del foglio di lavoro OGGI e ADESSO. Restituiscono rispettivamente la data e l’ora del sistema. Quando si apre per la prima volta una cartella di lavoro, questa viene aggiornata durante il normale processo di ricalcolo. Poiché rappresentano un cambiamento, Excel imposta il flag. Questi sono solo due possibili colpevoli; esistono altre funzioni che possono avere lo stesso effetto. Un elenco non esaustivo include INDIRETTO, SCARTO, CASUALE e CASUALE.TRA.

Il “dirty flag” può anche essere impostato automaticamente se la cartella di lavoro include collegamenti a dati di altri fogli di lavoro. Excel recupera i dati, che rappresentano una modifica alla cartella di lavoro appena aperta. Excel non imposta il flag se navighi semplicemente nella cartella di lavoro, facendo cose come selezionare celle o passare a un foglio di lavoro diverso.

Un modo per aggirare il problema è rimuovere tutto ciò che causa modifiche nella cartella di lavoro. Per la maggior parte delle persone, questo semplicemente non è pratico. Puoi anche aggiungere una macro automatica che verrà eseguita subito prima della chiusura della cartella di lavoro, come la seguente, che dovrebbe far parte dell’oggetto Questa_cartella_di_lavoro:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Questa macro non fa altro che cancellare il flag (la proprietà Saved). Anche se questo approccio funzionerà, esiste un enorme rischio inerente al suo utilizzo. Con la macro attiva, Excel non ti chiederà mai se desideri salvare le modifiche all’uscita, anche se sono state apportate modifiche legittime alla cartella di lavoro. Pertanto, dovresti ricordarti di salvare esplicitamente qualsiasi cosa nella cartella di lavoro ogni volta che apporti modifiche. Se non lo fai, potresti perdere parte del tuo lavoro.

Una variazione di questo approccio, meno spietata nei confronti delle modifiche dimenticate, consiste nel rendere effettivamente la macro parte della procedura Workbook_Open per l’oggetto Questa_cartella_di_lavoro:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Ora Excel apre la cartella di lavoro, ricalcola (incluse le modifiche basate su funzioni come OGGI e ADESSO) e quindi cancella il flag. Se chiudi subito, non ti verrà chiesto se desideri salvare le modifiche. Ti verrà chiesto se desideri salvare le modifiche, tuttavia, se apporti modifiche dopo l’esecuzione di questa macro, in altre parole, dopo che il foglio di lavoro è stato completamente aperto.

Oltre a ricalcolare automaticamente le funzioni che impostano il flag, è anche possibile che la cartella di lavoro contenga una o due macro che vengono eseguite automaticamente all’apertura. Se la macro sta apportando qualche tipo di modifica alla cartella di lavoro, imposterà naturalmente il flag. Puoi controllare l’editor VBA per vedere se questo è il caso.

 

 

Tags: , , , ,

Ti è stato utile?