Supponiamo di aver creato in Excel una “maschera” basata sulla convalida dati per l’immissione, da parte dell’utente, di risposte basate su elenchi a discesa. Nel foglio di lavoro sono presenti numerose domande di questo genere, vogliamo però fare in modo che l’utente sia obbligato a rispondere alle stesse in ordine. Vogliamo che prima di andare sulla Risposta2 abbia completato la Risposta1.
Realizzare una cosa di questo tipo potrebbe sembrare esclusivamente un compito da macro oppure potrebbe invogliare nella sperimentazione delle user forms create nel Visual Basic Editor di Excel, ma non è indispensabile rivolgersi a queste soluzioni (macro e user forms sono strumenti molto potenti, ma, per molti, potrebbero essere troppo complesse).
Dovremo inizialmente definire alcuni nomi (FORMULE > Nomi definiti > Definisci nome) attribuendoli a degli intervalli di celle (magari in un secondo foglio di lavoro). Selezioniamo una cella e diamogli il nome “Default”: in questa cella inseriremo il testo “Rispondere alle domande in ordine”. In un altro intervallo di celle inseriremo l’elenco delle risposte possibili per la Domanda1 e nomineremo l’intervallo “RisposteDom1”. Finalmente daremo un nome anche alla cella che verrà utilizzata dall’utente per rispondere a Domanda1: la chiameremo Risposta1. Dovremo chiaramente effettuare la stessa attività per ogni domanda presente nel questionario (Domanda2, Domanda3, ecc.).
A questo punto, nella “Convalida dati” di ognuna delle celle destinate a contenere le risposte, dobbiamo immettere una formula che indichi ad Excel cosa usare come possibili risposte. In quest’esempio, le impostazioni per la cella denominata “Risposta1” sono molto semplici: inseriremo il nome dato all’intervallo di celle contenenti le risposte alla Domanda1 (vedi Figura 1)
![#Excel - Come obbligare l'utente ad immettere dati con ordine [Quick Tip] 2 Obbligare l'utente ad inserire dati con ordine](https://www.excelacademy.it/wp-content/uploads/2015/02/Obbligare-lutente-ad-inserire-dati-con-ordine-460x449.jpg)
Per le domande successive, è invece necessario immettere una formula un pochino più complessa. Per esempio, la “Convalida dati” per la cella “Risposta2” sarà la seguente:
=SE(O(Risposta1="";Risposta1=Default);Default;RisposteDom2)
Per la cella Risposta3
=SE(O(Risposta2="";Risposta2=Default);Default;RisposteDom3)
e così via.
In pratica la formula specifica che, se la risposta alla domanda precedente è vuota oppure è uguale alla risposta di default (“Rispondere alle domande in ordine”), la risposta alla domanda corrente potrà essere solo la risposta di default. Se nessuna delle due condizioni viene rilevata, allora potrà essere scelta una delle risposte previste per la domanda corrente. Se l’utente provasse a rispondere ad una domanda quando una precedente non fosse completata, l’unica opzione che troverebbe nell’elenco a discesa sarebbe la risposta di default.
Il file in allegato contiene un esempio in cui questa tecnica è stata applicata. Potrete facilmente personalizzarlo a seconda delle vostre esigenze.