Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

Oggi torniamo sugli elenchi a tendina in un foglio Excel: vogliamo fare in modo che siano dinamici, ossia che se si sceglie un valore dal primo elenco, dal secondo sia possibile scegliere solo i valori relativi al primo valore scelto.

Facciamo un esempio per chiarire meglio

Immaginiamo di voler scegliere da un elenco a discesa la città da visitare e da un altro una possibile attrazione turistica di quella città.

La prima cosa da fari è preparare un foglio di “appoggio” con i dati che si serviranno per comporre gli elenchi a tendina, qualcosa come quello che vedete nella figura sotto.

In pratica, i valori della Riga 1 andranno a costituire i valori mostrati dal primo elenco a tendina, mentre quelli delle tre colonne saranno mostrati dal secondo elenco a discesa, i valori mostrati dipendono da quanto scelto nella prima tendina.  Se, ad esempio, dal primo elenco si sceglie Roma, nel secondo si potrà scegliere una delle voci Colosseo, San Pietro, Piazza Navona, Piazza di Spagna. Mentre, se dal primo elenco si sceglie Firenze, nel secondo si vedranno i valori Duomo, Battistero, Santa Maria Novella e così via.

La prima cosa da farsi è assegnare un nome alle celle della prima riga ossia quelle che forniscono i valori per la prima tendina. Nel nostro caso assegneremo il nome Città all’intervallo A1:C1.

Dobbiamo poi creare i tre intervalli che corrispondono ai monumenti delle tre città. Il nome di ciascun intervallo deve essere quello della relativa città, ossia uno dei possibili valori della prima tendina. Noi creeremo gli intervalli in modo statico, nulla vieta di farlo in modo dinamico come abbiamo spiegato in un post precedente, l’unico vincolo è che i nomi degli intervalli siano gli stessi valori mostrati nel primo elenco a discesa.

Noi avremo i seguenti intervalli:

  • Roma > A2:A5
  • Firenze > B2:B4
  • Venezia>C2:C5

Fatto questo siamo pronti per creare i nostri elenchi a tendina, nello stesso foglio o in un altro foglio.

Selezionate le celle in cui deve essere presente il primo elenco a discesa e, se usate Excel 2003, scegliete Dati > Convalida, mentre se usate Excel 2007 o 2010 portatevi alla scheda Dati e, nel gruppo, Strumenti dati, scegliete Convalida dati. In entrambi i casi, vedrete la finestra Convalida dati.


Dall’elenco Consenti, scegliete Elenco, quindi nella casella origine scrivete =Città che è il nome dell’intervallo che contiene i nomi delle città. Premete Ok per confermare.

A questo punto selezionate l’intervallo che deve contenere il secondo elenco a discesa e avviate la convalida dei dati. Questa volta l’origine dell’elenco sarà =Indiretto(A2) dove A2 è il nome della prima cella dell’intervallo in cui è presente il primo elenco a discesa.

La funzione INDIRETTO permette di trasformare il valore della cella mostrata come argomento in un riferimento di intervallo. In partica, se nella cella A2, ci sceglie Firenze, =Indiretto(A2) restituisce il riferimento all’intervallo Firenze che è quello che contiene i monumenti della città di Firenze. Quando si chiude la finestra Convalida dati con la funzione Indiretto, si ottiene un messaggio  di errore. Non preoccupatevi. È dovuto al fatto che la cella A2 è vuota e quindi non è possibile creare un riferimento ad un intervallo dal contenuto della cella.

Si otterrà qualcosa di simile alla figura che segue.

Attachments:
Download this file (elenchiDinamiciCascata.xlsx)elenchiDinamiciCascata.xlsx[ ]9 kB

Commenti   

raffaele
#20 raffaele 2017-11-13 16:30
Ciao ,pultroppo seguendo le tue indicazioni non riesco a far funzionare la secondo menu a tendina perché la funzione
" indiretto(a2)" mi da solamente la cella vuoto è non mi fa selezionare nulla ,anche se nel primo menu ho già slezionata una voce .

Grazie
Citazione
Guglielmo
#19 Guglielmo 2017-08-02 11:32
Ho una perplessità... :cry:
Come fare per non dover scrivere in tutte le convalida un nuovo"Origine" che cambia di riga in riga: =indiretto(A2), =indiretto(A3), =indiretto(A4). .. selezionando la colonna tutte le righe prendono il primo elemento (A2)...
Se devo scrivere la convalida per ogni riga sarà un macello... ho 3 collone e dovrei utilizzare circa 2.000 righe :-x
Citazione
Alessandra
#18 Alessandra 2017-06-29 09:07
Citazione Deborah:
ciao, con i menu a tendina è possibile lasciare un campo libero dove poter inserire un dato variabile che non è contemplato nell'elenco?
Ad esempio se nell'elenco ho 200,300,400 e in fase di scelta vorrei inserire 250 (o un qualsiasi altro numero) che non è presente, come posso forzare la formula?
Grazie

No, non è possibile. Quello che puoi fare è andare nella scheda Messaggio di errore della finestra Concalida dati e scegliere come stile Avviso o Informazione.
Excel ti avviserà che la voce scritta non è fra quepermetterà di tenerla ugualmente.
Citazione
Deborah
#17 Deborah 2017-06-28 12:21
ciao, con i menu a tendina è possibile lasciare un campo libero dove poter inserire un dato variabile che non è contemplato nell'elenco?
Ad esempio se nell'elenco ho 200,300,400 e in fase di scelta vorrei inserire 250 (o un qualsiasi altro numero) che non è presente, come posso forzare la formula?
Grazie
Citazione
Alex
#16 Alex 2017-03-09 15:48
Ciao a tutti, complimenti per il tutorial davvero esaustivo.
Cosa bisogna fare quando il nome di un intervallo di dati è simile ad un riferimento di cella e quindi Excel restituisce il messaggio di errore:"Il nome è in conflitto con un nome incorporato di Excel"?
Grazie mille
Citazione
Alessandra
#15 Alessandra 2016-08-17 19:24
Citazione Fabiox:
Ciao e complimenti per il tutorial, ottimo e ben spiegato. Vorrei solo sapere se è possibile far selezionare una voce univoca dall'elenco a discesa, giusto per farmi capire meglio se ho un elenco Numeri, con i dati 01,02,03,04,05, ecc. è possibile che se seleziono io il numero 01, questo non sia più selezionabile in altre celle?
Grazie e spero di essermi spiegato bene.


Senza codice vba non è possibile
Citazione
Fabiox
#14 Fabiox 2016-08-17 19:20
Ciao e complimenti per il tutorial, ottimo e ben spiegato. Vorrei solo sapere se è possibile far selezionare una voce univoca dall'elenco a discesa, giusto per farmi capire meglio se ho un elenco Numeri, con i dati 01,02,03,04,05, ecc. è possibile che se seleziono io il numero 01, questo non sia più selezionabile in altre celle?
Grazie e spero di essermi spiegato bene.
Citazione
Matteo
#13 Matteo 2015-06-15 16:00
Sisi, ho risolto con VBA ;)
Ero curioso di sapere se fosse realmente necessario scrivere codice ;)

Grazie comunque per le dritte ;)
Citazione
Alessandra
#12 Alessandra 2015-06-15 15:53
Figurati.
Comunque non un VBA molto complicato. Lavora sull'evento Worksheet_chang e e verifica che Target sia la cella con la città.
Se così è, svuoti la cella col monumento
Citazione
Matteo
#11 Matteo 2015-06-15 10:48
Immaginavo non ci fossero soluzioni "immediate" ;) beh grazie lo stesso, mi metterò a fare un po' di VBA :)

Buona giornata e grazie ancora :)
Citazione
Joomla templates by a4joomla