Monsieur Excel
Pour tout savoir faire sur Excel !

19 octobre 2007

Une liste déroulante à deux étages

Dans la cellule B1, vous avez créé, grâce à la commande Données – Validation – Liste, un menu déroulant avec les deux options « Fruit » et
« Légume ». Vous souhaitez définir en B2 une liste de validation différente selon le choix effectué en B1, comme dans les deux exemples ci-dessous :

Vous pouvez résoudre ce problème de façon tout à fait esthétique grâce à la macro événementielle ci-dessus, attachée à la feuille de calcul concernée.

Remarque – Notez, dans les chaînes de validation, l’utilisation de la virgule au lieu du point-virgule : en effet, le VBA est en anglais, langue dans laquelle c’est la virgule qui doit être utilisée à cet effet !

1 Commentaire(s):

  • A noter qu'il est aussi possible de faire sans macro :
    => en A1 : "Fruits"
    => A2 à A5 : Pomme, Fraise, etc..
    => en B1 : "Légumes"
    => B2 à B4 : Carotte, Tomate, Asperge

    De D1 à D10 on indiquera la famille : Fruits ou Légumes. (On peut déjà le faire en créant une validation par liste sur la zone A1:B1)

    De E1 à E10 on va utiliser une validation des données de type liste mais conditionnelle :
    - zoner E1:E10
    - validation des données -> type liste
    - Source :
    =si($E1=$A$1;$A$2:$A$5;si($E1=$B$1;$B$2:$B$5;$A$2:$B$5))

    => en gros si on indique :
    - qu'il s'agit de fruits la liste sera la zone listant les fruits (colonne A)
    - qu'il s'agit de légume la liste sera la zone listant les légumes (colonne B)
    - sinon on propose l'ensemble des fruits et légumes (on pourrait ne mettre aucun choix)

    A noter que je ne sais comment faire la même chose en indiquant directement la liste au lieu d'une zone. (cad à la place de $A$2:$A$5 écrire directement sa liste, excel me renvoi une erreur)

    By Anonymous Anonyme, sur 11:29 AM  

Enregistrer un commentaire

<< Accueil