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

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   

lucaB
#24 lucaB 2019-11-19 23:32
Ciao
avrei una domanda da porre: è possibile ( ed eventualmente come ) mettere in rapporto i valori di due menù a comparsa? Mi spiego meglio: se ( ad esempio ) nella cella A1 ho un menù a comparsa con 3 voci diverse ( A, B e C ), come posso metterli in relazione con i valori della cella B1 dove è presente un altro menù a comparsa con 3 valori differenti ( 1, 2 e 3 ), quando A=1, B=2 e C=3 ? Cioè, come posso fare affinché selezionando A sulla cella B1 appaia 1 automaticamente , selezionando B appaia 2 e selezionando C appaia 3?
Grazie per l'aiuto!!! :lol:
Citazione
Alessandra
#23 Alessandra 2018-05-15 10:01
Citazione Daniele:
Ciao, avrei una domanda da porre.
Poniamo che:
- nella colonna A ci siano un centinaio di città.
- nella colonna B ci siano altrettanti monumenti.
- ci fosse una colonna (nei dati) che a fianco ad ogni monumento abbia due celle: una con anno di realizzazione ed una con la descrizione del monumento.

Ho fatto la stessa cosa potendo scegliere:
- città
- monumento
- anno di costruzione del monumento

Come potrei avere in automatico il riempimento della casella con la descrizione?


Se capisco bene.... ti serve CERCA.VERT
Citazione
Daniele
#22 Daniele 2018-05-11 13:14
Ciao, avrei una domanda da porre.
Poniamo che:
- nella colonna A ci siano un centinaio di città.
- nella colonna B ci siano altrettanti monumenti.
- ci fosse una colonna (nei dati) che a fianco ad ogni monumento abbia due celle: una con anno di realizzazione ed una con la descrizione del monumento.

Ho fatto la stessa cosa potendo scegliere:
- città
- monumento
- anno di costruzione del monumento

Come potrei avere in automatico il riempimento della casella con la descrizione?
Citazione
Davide Parolin
#21 Davide Parolin 2018-01-05 13:31
Salve,
ho provato a metere assieme gli elenchi dinamici e la funzione indiretto, ma non funziona!
Fatta la stessa cosa con un elenco definito, invece funziona.
Ma hai seguito la procedura proposta o stai provando a fare qualcosa di diverso?
Se provi a scaricare il file esempio allegato funziona. Quello ti può aiutare

L'elenco dinamico è corretto, infatti se faccio un convalida dati utilizzando l'elenco dinamico (quindi passandogli il nome direttamente), questo funziona correttamente, mentre se cerco di passarlo con INDIRETTO, pur esponendo il valore corretto (ho provato in una casella accanto), non mi legge alcun valore dell'intervallo che mi serve...
Idee/soluzioni ?

Grazie
Citazione
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

Seleziona l'intervallo che ti interessa e scrivi la formula, COME SE la scrivessi solo per la prima delle celle che hai selezionato. Excel la aggiornerà per tutte le altre
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
Joomla templates by a4joomla