Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Listes déroulantes à choix multiples

PJ_F

XLDnaute Nouveau
Bonjour à toutes et à tous,

Mon problème est le suivant
J'ai un tableau qui est une fiche de remise de prix avec 3 colonnes.
Dans le 2ème onglet, j'ai créé la liste des produits, qui se décompose en gros comme suit:
FamilleProd1
FamilleProd2

Dans chacune de ces Familles, j'ai encore 2 colonnes de description
FamilleProd1: - Couleur1, Couleur2, Couleur3
Puis selon la couleur, une dimension 600x400; 1200x1000, etc..

FamilleProd2: - Aspect1, Aspect2, Aspect3
Puis selon l'Aspect dimension qui peuvent être différente de la FamilleProd1 (donc une liste indépendante)

Ce que je souhaiterai c'est qu'en fonction du choix de la 1ère colonne dans mon onglet Fiche de remise de prix, exemple FamilleProd1, la colonne 2 donne uniquement les informations Liste Déroulante Couleur, puis dans la colonne suivante, les dimensions
Mais si je choisis FamilleProd2, la colonne2 doit à ce moment n'offrir que la liste de la colonne Aspect1, etc.. puis évidemment que les dimensions de cet "aspect"

Je sais créer une ligne Départ avec des valeur ou noms en dessous, mais cela n'est pas multiple..
En espérant être audible ? si qqn à une solution ? Data list ? Indirect ? etc..

Merci et bonne journée

PJ
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Header c'est la ligne de titre des tableaux. La recherche part du titre et descend comme on le ferait avec nos yeux.

Au #7 j'ai expliqué à quoi servent MATCH et COUNTIF. Relis bien mes explications.

MATCH trouve la 1ère ligne où apparait la valeur de niveau 1 par rapport à la saisie en colonne B dans FRP
COUNTIF compte sur combien de lignes figure cette valeur de niveau 1 pour ensuite pouvoir afficher la colonne Niveau 2 (ou 3 selon le tableau) de ces lignes dans ta liste déroulante

La plage se calcule dynamiquement selon la ligne que tu saisis dans l'onglet FRP : d'où les {...}
 

PJ_F

XLDnaute Nouveau
Bonjour Chris

OK mais comment tu créés Header ? C'est automatique et ligne 1?
Pourquoi dans la feuille que tu m'as envoyée, il y a deux symbole différents selon les listes?
Je ne comprends pas comment tu fais cela ?
Je te joins mon dernier fichier, si tu peux y jeter un oeil ?

Merci

PJ
 

chris

XLDnaute Barbatruc
Bonjour

J'ai parlé de tableaux au #7.

Il faut
  • intercaler des colonnes entre les 3 plages et mettre les 3 plages sous forme de tableaux (onglet Accueil)
  • nommer les tableaux comme sur le fichier que je t'ai envoyé au #9 cela se fait à gauche de l'onglet Outils de tableau)
  • créer les plages nommées :
    • l'une en sélectionnant la colonne unique du premier tableau (sans le titre) en mode de sélection spécifique aux tableaux (cf. Ce lien n'existe plus)
    • les autres avec les formules : si tu as respecté les noms pour les tableaux, tu peux recopier mes formules à condition de te placer en C23 de FRP et de remplacer FRP!$B2 par FRP!$B23
Si PATINA, COVER, SOLID, TRANSPARENT n'ont pas de niveau 2, ne pas les reporter dans le second tableau
 

chris

XLDnaute Barbatruc
Bonjour

1er problème tes définitions de Niv_1, Niv_2, et Ni_v3 sont entre guillemets donc du texte et non une plage.

Niv_2 : il y a un espace de Trop Niveau 2 au lieu de Niveau2

Niv 3 : idem avec Niveau 3
 

PJ_F

XLDnaute Nouveau
Pour le NIV_2, j'écris ceci dans la case refer to

OFFSET(Niveau2[[#Headers];[Niveau 2]];MATCH(FRP!$B23;Niveau2[Niveau1];0);0;COUNTIF(Niveau2[Niveau1];FRP!$B23);1)

Quand je valide, il dit OK mais si je réédite j'ai la formule comme suit:

="OFFSET(Niveau2[[#Headers];[Niveau 2]];MATCH(FRP!$B23;Niveau2[Niveau1];0);0;COUNTIF(Niveau2[Niveau1];FRP!$B23);1)"

Donc la même chose mais cela a rajouté =" au début et " à la fin (donc texte) - Pourquoi ? Ai-je un défaut de définition qq part ?
 

chris

XLDnaute Barbatruc
RE

Il y a B39 au lieu de B23 mais le message ne vient pas de là.

As-tu mis les formules en Anglais : les formules nommées ne semblent pas se traduire ni le mot En-têtes.
Doivent être OK
=OFFSET(Niveau2[[#En-têtes];[Niveau2]];MATCH(FRP!$B23;Niveau2[Niveau1];0);0;COUNTIF(Niveau2[Niveau1];FRP!$B23);1)
et
=OFFSET(Niveau3[[#Headers];[Niveau3]];MATCH(FRP!$B23;Niveau3[Niveau1];0);0;COUNTIF(Niveau3[Niveau1];FRP!$B23);1)

et dans les validations il fait bien mettre = aussi :
=NIV_1
 

chris

XLDnaute Barbatruc
Bonjour

Ton fichier fonctionne quand je l'ouvre !

Dès que je sélectionne une option en colonne B, j'ai bien les listes en C et D

Par contre il faut mettre la validation sur toutes les lignes de B23 à B41, idem pour C et D
 

PJ_F

XLDnaute Nouveau
Le blaireau que je suis !!!!
Si je fais pas de choix col B cela ne propose rien col C...
Quel crétin fais-je !!
Je reste dubitatif par contre sur le fait qu'il continue en validation à me faire ce code d'erreur...
Bref;

Merci à toi

Bonne soirée

PJ
 

chris

XLDnaute Barbatruc
Bonjour

Quand j'ouvre ton fichier il est opérationnel donc c'est bizarre.
A priori le nom des fonctions se traduit bien et tu utilises aussi ; et non , pour tes formules...

Donc je ne vois pas...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…