J'ai enfin compris comment créer un ensemble de listes en cascade dynamique dans Excel à l'aide de la validation des données et de la fonction INDIRECTE. Cependant, je rencontre un problème.
Je voudrais configurer ma feuille de calcul de sorte que chaque fois qu'une modification est apportée dans une liste de validation des données, toutes les listes suivantes soient définies sur une valeur par défaut. Par exemple:
Disons que j'ai List1, List2, List3 et List4. Les valeurs de chaque liste dépendent de la sélection effectuée dans la liste précédente. Lorsque je démarre la feuille de calcul, je veux que toutes les listes par défaut soient "TOUT". Lorsque l'utilisateur sélectionne une valeur dans List1, List2 se met à jour avec un ensemble de choix valides. Je voudrais par défaut List2 à l'un de ces choix. Cependant, bien que je puisse obtenir List2 pour remplir avec l'ensemble correct d'options de sélection, je ne peux pas obtenir la valeur par défaut souhaitée qui lui est affectée.
De même, si l'utilisateur fait une sélection dans List1, List2 et List3, puis revient en arrière et modifie List1, je voudrais que List2-List4 revienne par défaut à "ALL".
Comment puis-je faire cela?
=IF(A1="List1",C1:C5,D1:D4)
. J'ai testé cela avec la valeur de la cellule A1 sélectionnée dans une liste et cela fonctionne comme vous le souhaitez.Réponses:
Une méthode non VBA que j'emploie pour ce problème consiste à appliquer un formatage CONDITIONNEL aux cellules suivantes qui vérifie si la valeur actuelle qu'il contient correspond à une valeur dans la plage de référence INDIRECT () actuelle. Sinon, la cellule devient rouge ou la valeur disparaît (police / arrière-plan correspondant) afin que l'utilisateur sache que la valeur de cette cellule doit être mise à jour / resélectionnée.
Pour illustrer cela (et la méthode VBA mentionnée par d'autres ci-dessus), voici un exemple de fichier . Le fichier que vous voulez est DependentLists3.xls
la source