Linda ha chiesto se esista un modo per calcolare solo la cartella di lavoro attiva. Quando Excel esegue un ricalcolo, esso viene eseguito su tutte le cartelle di lavoro aperte e, se si tratta di cartelle di lavoro molto grandi, a volte il ricalcolo può richiedere più di quindici minuti. Se lei fosse in grado di limitare ciò che viene ricalcolato, il processo sarebbe ovviamente più veloce.
Sfortunatamente, non esiste un metodo diretto per calcolare solo una particolare cartella di lavoro. È tuttavia possibile calcolare solo il foglio di lavoro attivo, se lo si desidera. Innanzitutto, imposta la modalità di ricalcolo su manuale seguendo questi passaggi:
- Visualizza la finestra di dialogo Opzioni di Excel (in Excel 2007 fai clic sul pulsante Office e quindi su Opzioni di Excel, in Excel 2010 e versioni successive visualizza la scheda File della barra multifunzione e quindi fai clic su Opzioni).
- Fare clic sull’area Formule a sinistra della finestra di dialogo.
- Nella sezione Opzioni di calcolo della finestra di dialogo, assicurati che il pulsante di opzione Manuale sia selezionato.
- Fai clic su OK.
Ora la tua cartella di lavoro (in realtà, tutte le tue cartelle di lavoro aperte) verrà ricalcolata solo quando premerai F9. Se vuoi ricalcolare solo il foglio di lavoro corrente, premi MAIUSC+F9.
Excel fornisce anche funzioni macro che consentono di eseguire una di queste tre operazioni: calcolare tutte le cartelle di lavoro aperte, calcolare un foglio di lavoro specifico in una cartella di lavoro o calcolare un intervallo di celle specificato in un foglio di lavoro. Consapevoli di questo è possibile creare una macro che scorra tutti i fogli di lavoro in una cartella di lavoro e ricalcoli ciascuno di essi.
La macro seguente imposta la modalità di calcolo su manuale (quindi le altre cartelle di lavoro non verranno calcolate), quindi esegue il ciclo e calcola ogni foglio della cartella di lavoro attiva.
Sub CalcolaCartella()
Dim wks As Worksheet
Application.Calculation = xlManual
For Each wks In ActiveWorkbook.Worksheets
wks.Calculate
Next
Set wks = Nothing
End Sub
Se ritieni di voler calcolare diverse parti della tua cartella di lavoro in momenti diversi, puoi espandere la macro in modo che esegua qualsiasi tipo di calcolo tu desideri:
Sub CosaCalcola()
Dim iRisp As Integer
Application.Calculation = xlManual
iRisp = InputBox("1 = Calcola l'intervallo selezionato" _
& vbCrLf & _
"2 = Calcola questo foglio di lavoro" _
& vbCrLf & _
"3 = Calcola questa cartella di lavoro" _
& vbCrLf & _
"4 = Calcola tutte le cartelle in memoria" _
& vbCrLf & vbCrLf & _
"Inserisci il numero corrispondente alla tua scelta" _
& vbCrLf & "Poi clicca su OK", _
"Cosa vuoi calcolare?", "Inserisci un numero", _
5000, 5000)
Select Case iRisp
Case 1 'Solo intervallo
Selection.Calculate
Case 2 'Solo foglio di lavoro
ActiveSheet.Calculate
Case 3 'Solo cartella di lavoro
For Each wks In ActiveWorkbook.Worksheets
wks.Calculate
Next
Case 4 'Tutte le cartelle aperte
Application.CalculateFull
End
End Select
End Sub
Questa macro presenta una casella di input che richiede all’utente quale tipo di ricalcolo desidera. Quando l’utente inserisce un numero da 1 a 4, viene eseguito il tipo di ricalcolo desiderato.