I riferimenti circolari si verificano quando una formula si riferisce, direttamente o indirettamente, alla cella in cui è archiviata. Ad esempio, se B3 contiene la formula =B2+B3, allora B3 contiene un riferimento circolare.
Normalmente i riferimenti circolari rappresentano un errore in una formula. Ci sono tuttavia alcune situazioni in cui i riferimenti circolari sono desiderabili. Excel ti consente di includere riferimenti circolari in un foglio di lavoro, ma può diventare un po’ esigente al riguardo.
Nella maggior parte dei casi, Excel è molto indulgente riguardo ai riferimenti circolari se è attivato il controllo Attiva calcolo iterativo (visualizza la finestra di dialogo Opzioni di Excel e quindi fai clic su Formule sul lato sinistro della finestra di dialogo). Se selezioni la casella di controllo Attiva calcolo iterativo e quindi immetti un riferimento circolare, Excel non protesta. Utilizza invece le impostazioni nella finestra di dialogo Opzioni di Excel per controllare quante volte il riferimento circolare debba essere ripetuto prima di venire considerato completato.
Sembra che l’impostazione della casella di controllo Attiva calcolo iterativo sia memorizzata come parte di una cartella di lavoro, ma non sempre le viene prestata attenzione quando la cartella di lavoro viene successivamente caricata in Excel. In effetti, l’impostazione viene ignorata completamente se si verifica una delle seguenti condizioni prima di aprire la cartella di lavoro:
- Si apre qualsiasi altra cartella di lavoro oltre alla cartella di lavoro predefinita creata al primo avvio di Excel.
- Si modifica la casella di controllo Attiva calcolo iterativo mentre viene visualizzata la cartella di lavoro predefinita.
Ciò che fa Excel è esaminare l’impostazione della casella di controllo Attiva calcolo iterativo per qualunque cartella di lavoro venga aperta per prima. Tale impostazione diventa “predefinita” per la sessione corrente con Excel. Per qualsiasi altra cartella di lavoro caricata durante la stessa sessione, l’impostazione salvata della casella di controllo Attiva calcolo iterativo viene ignorata.
Inoltre, se nel sistema è definita una cartella di lavoro personale, l’impostazione della casella di controllo Attiva calcolo iterativo all’interno di tale file verrà sempre utilizzata come impostazione predefinita. Perché? Poiché la cartella di lavoro personale è sempre la prima cartella di lavoro aperta e la prima cartella di lavoro aperta definisce sempre l’impostazione predefinita.
Se si dispone di una cartella di lavoro salvata che utilizza riferimenti circolari e la casella di controllo Attiva calcolo iterativo è deselezionata (per impostazione predefinita o in modo esplicito), quando si apre la cartella di lavoro contenente i riferimenti circolari, Excel visualizza un avviso. Se non si desidera visualizzare l’avviso, la soluzione ovvia è assicurarsi di aprire la cartella di lavoro prima di qualsiasi altra cartella di lavoro (in modo che venga utilizzata l’impostazione di iterazione) o impostare esplicitamente la casella di controllo Attiva calcolo iterativo prima di aprire la cartella di lavoro.
Se non vuoi preoccuparti dell’ordine in cui apri le cartelle di lavoro e non vuoi modificare sempre l’impostazione della casella di controllo Attiva calcolo iterativo, puoi creare una macro che si assicuri che la casella di controllo Attiva calcolo iterativo sia selezionata per la cartella di lavoro. Se assegni la macro all’evento Workbook_Open della cartella di lavoro, verrà eseguita ogni volta che la cartella di lavoro viene aperta, assicurandoti che non vedrai l’avviso che non desideri vedere. La macro appare come segue:
Private Sub Workbook_Open()
Application.Iteration = True
End Sub
Se è stata definita una cartella di lavoro personale per il sistema, è possibile aggiungere questa macro ad essa invece che alle singole cartelle di lavoro. In questo modo puoi assicurarti che la casella di controllo Attiva calcolo iterativo sia sempre selezionata per ogni sessione di Excel.