Gary ha una cartella di lavoro di sola lettura a cui possono accedere più utenti. Possono modificare le celle ma non salvare il loro lavoro. All’uscita dalla cartella di lavoro, Gary vuole che Excel si chiuda senza informare l’utente che è di sola lettura e dare loro la possibilità di salvare una copia.

Questa operazione viene eseguita al meglio utilizzando una macro per modificare il flag Salvato nella cartella di lavoro, appena prima della chiusura. Questo flag indica, internamente, se una cartella di lavoro deve essere salvata o meno. Se il flag è False, Excel sa che la cartella di lavoro non è stata salvata (le modifiche sono state apportate senza salvare). Se la tua macro imposta il flag su True, Excel si chiuderà direttamente perché pensa che tutte le modifiche siano state salvate.

Ecco come dovrebbe apparire la macro, nel modo più semplice:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If ThisWorkbook.ReadOnly Then     ThisWorkbook.Saved = True   End If End Sub

La macro dovrebbe essere aggiunta all’oggetto ThisWorkbook nell’editor VBA.

In questo modo, viene eseguito automaticamente appena prima della chiusura della cartella di lavoro. Il flag è impostato su True e quando la macro termina, Excel continua con le sue normali procedure di chiusura. Poiché Excel ritiene che non siano presenti modifiche non salvate, l’utente non vede alcun messaggio e la cartella di lavoro viene chiusa.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (10349) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.