Impostazione di un valore predefinito per un elenco di convalida a cascata dinamico in Excel 2010


11

Ho finalmente capito come costruire un insieme dinamico di elenchi a cascata in Excel usando la convalida dei dati e la funzione INDIRETTA. Tuttavia, sto riscontrando un problema.

Vorrei impostare il mio foglio di calcolo in modo che ogni volta che viene apportata una modifica in un elenco di convalida dei dati, tutti gli elenchi successivi vengano impostati su un valore predefinito. Per esempio:

Diciamo che ho List1, List2, List3 e List4. I valori di ciascun elenco dipendono dalla selezione effettuata nell'elenco precedente. Quando avvio il foglio di calcolo, desidero che tutti gli elenchi siano impostati su "TUTTI". Quando l'utente seleziona un valore in List1, List2 si aggiorna con una serie di scelte valide. Vorrei predefinito List2 su una di quelle scelte. Tuttavia, mentre riesco a compilare List2 con l'insieme corretto di opzioni di selezione, non riesco ad assegnare il valore predefinito desiderato.

Allo stesso modo, se l'utente effettua una selezione in List1, List2 e List3, quindi torna indietro e cambia List1, mi piacerebbe che List2-List4 tornasse a "ALL".

Come faccio a fare questo?


3
Questo è un lavoro per un trigger di evento VBA worksheet_change. Non ho tempo in questo momento per fornire i dettagli (più tardi lo farò se hai ancora bisogno di aiuto), ma è lì che dovresti indirizzare la tua ricerca.
Eccellente

Probabilmente hai già risolto questo problema o hai rinunciato. Concordo con Excellll che un evento di modifica del foglio di lavoro potrebbe essere il più semplice. Tuttavia, con l'opzione Elenco per la convalida dei dati, l'origine può essere un'espressione come =IF(A1="List1",C1:C5,D1:D4). Ho provato questo con il valore della cella A1 selezionato da un elenco e funziona nel modo desiderato.
Tony Dallimore,

Hai ancora questo problema?
Tamara Wijsman,

Cordiali saluti, un metodo non VBA che utilizzo per questo problema è applicare una formattazione CONDIZIONATA alle celle successive che controlla se il valore corrente che detiene corrisponde a un valore nell'intervallo di riferimento INDIRECT () corrente. In caso contrario, la cella diventa rossa o il valore scompare (carattere / sfondo corrispondenti) in modo che l'utente sappia che il valore per quella cella deve essere aggiornato / riselezionato.
Jerry Beaucaire,

Per illustrare sia il metodo VBA che il metodo CF che ho menzionato sopra, c'è un file di esempio qui DependentLists3.xls
Jerry Beaucaire

Risposte:


1

Un metodo non VBA che utilizzo per questo problema consiste nell'applicare una formattazione CONDIZIONATA alle celle successive che controlla se il valore corrente che detiene corrisponde a un valore nell'intervallo di riferimento INDIRECT () corrente. In caso contrario, la cella diventa rossa o il valore scompare (carattere / sfondo corrispondenti) in modo che l'utente sappia che il valore per quella cella deve essere aggiornato / riselezionato.

Per illustrare questo (e il metodo VBA menzionato da altri sopra), qui c'è un file di esempio . Il file desiderato è DependentLists3.xls

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.