Excel ti consente di controllare quando ricalcola un foglio di lavoro. Normalmente, Excel ricalcola ogni volta che cambi qualcosa in una cella. Se stai lavorando con fogli di lavoro molto grandi che contengono molte formule, potresti voler disattivare la funzione di ricalcolo automatico. È possibile disattivare il ricalcolo automatico utilizzando i controlli nella scheda Calcolo della finestra di dialogo Opzioni.

Le tue macro possono anche forzare Excel a ricalcolare il foglio di lavoro. Se il ricalcolo automatico è attivato, qualsiasi modifica apportata dalla macro in un foglio di lavoro costringerà Excel a ricalcolare. Se hai disattivato il ricalcolo automatico, puoi utilizzare il metodo Calculate per ricalcolare un foglio di lavoro:

ActiveSheet.Calculate

Ovviamente, se l’esecuzione del ricalcolo richiede un po ‘di tempo, potresti voler verificare se è necessario un ricalcolo prima di forzarne uno. Sembra che non ci siano flag che puoi controllare direttamente per vedere se è necessario un ricalcolo. La cosa più vicina è controllare la proprietà Salvata dell’oggetto Cartella di lavoro. Questa proprietà funge essenzialmente da “flag sporco” per l’intera cartella di lavoro. Se sono presenti modifiche non salvate in una cartella di lavoro, la proprietà Salvato è False; se tutto è salvato, allora è vero.

In che modo questo ti aiuta a capire se è necessario un ricalcolo?

Ricorda che il calcolo è necessario solo quando ci sono modifiche in un foglio di lavoro. La modifica di qualsiasi cosa in un foglio di lavoro imposterà anche la proprietà Salvato della cartella di lavoro su False. Quindi, potresti controllare la proprietà Salvata prima di eseguire il ricalcolo, come mostrato qui:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate End If

C’è solo un problema con questo approccio, ovviamente: la proprietà Saved è impostata su True solo se la cartella di lavoro viene effettivamente salvata. Ciò significa che puoi ricalcolare più volte senza bisogno di farlo, a meno che tu non leghi insieme salvataggio e ricalcolo, come mostrato qui:

If Not ActiveWorkbook.Saved Then     ActiveSheet.Calculate     ActiveWorkbook.Save End If

La saggezza di affrontare questo problema in questo modo dipende dalla natura della tua situazione particolare. Se il salvataggio della cartella di lavoro richiede più tempo rispetto al semplice ricalcolo, questo approccio non funzionerà. Se, tuttavia, il ricalcolo richiede più tempo (cosa molto possibile con alcuni tipi di operazioni), questo approccio potrebbe funzionare bene.

_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 (2323) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: