Finalmente descubrí cómo crear un conjunto dinámico de listas en cascada en Excel usando la 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 Lista1, Lista2, Lista3 y Lista4. Los valores de cada lista dependen de la selección realizada en la lista anterior. Cuando inicio la hoja de cálculo, quiero que todas las listas tengan el valor predeterminado "TODO". Cuando el usuario selecciona un valor en Lista1, Lista2 se actualiza con un conjunto de opciones válidas. Me gustaría establecer por defecto List2 una de esas opciones. Sin embargo, si bien puedo hacer que List2 se complete con el conjunto correcto de opciones de selección, no puedo asignarle el valor predeterminado deseado.
De manera similar, si el usuario hace una selección en Lista1, Lista2 y Lista3, luego regresa y cambia Lista1, me gustaría que Lista2-Lista4 vuelva a ser "TODO" de forma predeterminada.
¿Cómo hago esto?
Respuesta1
Un método que no es VBA que empleo 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 INDIRECT() actual. De lo contrario, la celda se vuelve roja o el valor desaparece (coincide con la fuente/el fondo) para que el usuario sepa que el valor de esa celda debe actualizarse/reseleccionarse.
Para ilustrar esto (y el método VBA mencionado por otros anteriormente), existe unarchivo de muestra aquí. El archivo que quieres esListasDependientes3.xls