Establecer un valor predeterminado para una lista de validación dinámica en cascada en Excel 2010

11

Finalmente descubrí cómo construir un conjunto dinámico de listas en cascada en Excel usando Validación de datos y la función INDIRECTA. Sin embargo, me encuentro con un problema.

Me gustaría configurar mi hoja de cálculo para que cada vez que se realice un cambio en una lista de validación de datos, todas las listas posteriores se establezcan en un valor predeterminado. Por ejemplo:

Digamos que tengo List1, List2, List3 y List4. Los valores de cada lista dependen de la selección realizada en la lista anterior. Cuando comienzo la hoja de cálculo, quiero que todas las listas tengan el valor predeterminado "TODAS". Cuando el usuario selecciona un valor en List1, List2 se actualiza con un conjunto de opciones válidas. Me gustaría predeterminar List2 a una de esas opciones. Sin embargo, aunque puedo hacer que List2 se complete con el conjunto correcto de opciones de selección, no puedo asignarle el valor predeterminado deseado.

Del mismo modo, si el usuario realiza una selección en List1, List2 y List3, luego regresa y cambia List1, me gustaría que List2-List4 vuelva a "ALL" por defecto.

¿Cómo hago esto?

Arrendajo
fuente
3
Este es un trabajo para un desencadenador de evento VBA worksheet_change. No tengo tiempo en este momento para dar los detalles (más tarde lo haré si aún necesita ayuda), pero ahí es donde debe dirigir su investigación.
Excellll
Probablemente ya haya resuelto esto o se haya rendido. Estoy de acuerdo con Excellll en que un evento de cambio de hoja de trabajo podría ser el más fácil. Sin embargo, con la opción Lista para Validación de datos, el origen puede ser una expresión como =IF(A1="List1",C1:C5,D1:D4). He probado esto con el valor de la celda A1 seleccionada de una lista y funciona de la manera que busca.
Tony Dallimore
¿Sigues teniendo este problema?
Tamara Wijsman
Para su información, un método no VBA que utilizo para este problema es aplicar un formato CONDICIONAL a las celdas posteriores que verifica si el valor actual que contiene coincide con un valor en el rango de referencia actual INDIRECTO (). Si NO, la celda se vuelve roja o el valor desaparece (fuente / fondo coincidente) para que el usuario sepa que el valor de esa celda debe actualizarse / volverse a seleccionar.
Jerry Beaucaire
Para ilustrar tanto el método VBA como el método CF que mencioné anteriormente, hay un archivo de muestra aquí DependentLists3.xls
Jerry Beaucaire

Respuestas:

1

Un método no VBA que utilizo para este problema es aplicar un formato CONDICIONAL a las celdas posteriores que verifica si el valor actual que contiene coincide con un valor en el rango de referencia actual INDIRECTO (). Si NO, la celda se vuelve roja o el valor desaparece (fuente / fondo coincidente) para que el usuario sepa que el valor de esa celda debe actualizarse / volverse a seleccionar.

Para ilustrar esto (y el método VBA mencionado por otros arriba), hay un archivo de muestra aquí . El archivo que desea es DependentLists3.xls

Jerry Beaucaire
fuente