Protezione delle formule nelle celle collegate al controllo (Microsoft Excel)
Michael ha un controllo del modulo (una casella di controllo) collegato alla cella A1. Può inserire una formula nella cella A1 che si risolve in Vero o Falso e la casella di controllo riflette quel risultato. Tuttavia, se qualcuno fa clic sulla casella di controllo per modificarla, la formula nella cella A1 viene sovrascritta da un vero o falso esplicito. Michael ha bisogno della formula nella cella A1 per controllare la casella di controllo, ma ha anche bisogno che l’utente sia in grado di attivare o disattivare la casella di controllo senza sovrascrivere la formula. Si chiede se questo sia possibile.
Insomma, questo non è possibile. Microsoft prevedeva che le caselle di controllo controllassero il valore in una cella e quindi potresti fare riferimento a quella cella in altre formule. Non hanno mai previsto che le celle collegate contenessero formule.
Una cosa che potresti provare, se lo desideri, è creare una macro che monitora una cella e, se cambia, aggiorna una cella diversa. Ad esempio, è possibile collegare la casella di controllo a una cella diversa (come la cella B1), in modo che la formula nella cella A1 non venga modificata quando viene utilizzata la casella di controllo. È quindi possibile creare una macro del gestore eventi che esamina tutto ciò che si trova nella cella A1 e, se cambia, la macro modifica ciò che è nella cella B1. Questa modifica nella cella B1 attiverà quindi la modifica nella casella di controllo.
Un altro approccio basato su macro consiste nell’utilizzare una macro per scrivere una formula nella cella A1. Questo è un semplice esempio di una tale macro:
Sub CheckBoxState() Range("A1").Formula = "=IF(" & Range("A1") & _ ",""CHECKED"",""NOT CHECKED"")" End Sub
Se si assegna questa macro al controllo della casella di controllo, quando una persona fa clic sulla casella di controllo, accadono due cose. Innanzitutto, lo stato della casella di controllo viene scritto nella cella A1, sovrascrivendo ciò che è presente. In secondo luogo, la macro viene eseguita, riscrivendo la formula nella cella A1. Si noti che la formula (come definita in questa macro) tiene conto del valore appena memorizzato nella cella A1. Pertanto, se il controllo della casella di controllo scrive True nella cella A1, la macro inserisce quanto segue nella cella:
=IF(TRUE,"CHECKED","NOT CHECKED")
Fare di nuovo clic sulla casella di controllo, il valore inserito nella cella cambia in Falso e la formula che viene inserita nella cella cambia. Ovviamente, dovresti modificare la macro in modo che la formula che forza nella cella A1 rifletta la formula che vuoi veramente lì.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (113) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.