Problème liste imbriquée

Résolu/Fermé
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014 - 21 juil. 2014 à 10:19
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014 - 22 juil. 2014 à 08:38
Bonjour,

Je vous contacte parce que j'ai crée un liste avec des critères en A1 B1 C1.
J'ai défini un nom : UT (comprenant de A1 à C1). En dessous de A1, B1 et C1 j'ai divers éléments remplis.
J'ai crée 3 autres noms correspondants à chaque colonne (pas la colonne entière).

1) Ensuite dans une cellule A1 sur une autre feuille, j'ai crée une liste =UT. J'ai défini un nom à cette cellule : unite
2) J'ai ensuite fait validation de données dans la case A2 =INDIRECT(unite)

Du coup dès que je sélectionne dans ma liste un élément entre A1 et C1 j'ai automatiquement la liste correspondante aux colonnes, liste imbriquée quoi.

Si vous m'avez suivi, j'expose maintenant mon problème :
quand je sélectionne toto tata (cellule composé de 2 mots en B1), dans ma liste imbriquée, je n'ai pas les critères de proposé. En revanche si je marque que toto j'ai les critères. En gros c'est parce que j'ai plusieurs mots que ça ne fonctionne pas.

Comment régler le problème svp ?? Merci de votre help
A voir également:

6 réponses

JSmithJ Messages postés 4401 Date d'inscription mercredi 7 mai 2014 Statut Contributeur Dernière intervention 13 juillet 2021 720
Modifié par JSmithJ le 21/07/2014 à 10:47
J'espère avoir bien compris le problème...

Les espaces ne sont pas gérés dans les noms de listes. Il faut donc remplacer les " " par "_" par exemple, dans les noms et utiliser la fonction substitute dans votre création de liste :

INDIRECT(SUBSTITUTE(B5," ","_"))

;-)
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
Modifié par Vaucluse le 21/07/2014 à 10:53
Bonjour
Pas facile à comprendre votre question, vous parlez de A1 de B1 et on ne voit pas trop où on en est.
Toutefois pour in fo, peut être cela pourra servir

1°) Avec le code INDIRECT, vous ne pouvez pas avoir comme liste autre chose qu'une liste nommée selon le texte de la cellule "mère"
2°) vous ne pouvez pas avoir de champ nommé composé de plusieurs mots séparés par des blancs.
Si vous avez nommé en automatique selon les titres de colonne, Excel à inséré dans les noms des underscore qui n'existent pas dans le titres.

Si vous ne trouvez pas, déposez votre fichier ou un modèle équivalent sur:
https://www.cjoint.com/
et revenez coller ici le lien donné par le site

Si vous voulez faire référence à des listes via une formation différentes dans la cellule "mére", il y a des moyens mais il faut en dire plus sur vos données.

à vous lire
Errare humanum est, perseverare diabolicum
0
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014
21 juil. 2014 à 11:12
Merci de votre aide à tous les 2.

https://www.cjoint.com/?3GvllKaWXAc

Voilà mon fichier, j'ai mis des commentaires à l'intérieur
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
Modifié par Vaucluse le 21/07/2014 à 11:29
Voyez cette solution.

Elle n'utilise pas les noms de champs, mais va chercher directement dans la ligne 7 pour alimenter le nom LISTE avec la formule
(voir dans la liste des champs nommés)
=DECALER(Listes!$A$7;1;EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)-1;10;)

la valdiation elle se fait directement sur le nom du champ soit liste

par ailleurs j'"ai rajouté en dessous de la, ligne 7, avant les noms de la iste une ligne vide? Ceci oblige excel à afficher le début de liste dans le menu déroulant quand la cellule "mère" est vide.

Et bien entendu,, il est inutile de nommer chaque champ de la feuille liste

https://www.cjoint.com/?DGvlyvpQT5R

crdlmnt

Errare humanum est, perseverare diabolicum
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014
21 juil. 2014 à 11:35
C'est impeccable ça, ça fonctionne super bien ! Merci beaucoup ! :) :) :)
Vraiment merci beaucoup à tous !
0
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014
21 juil. 2014 à 11:42
que veut dire le -1:10 stp ?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
21 juil. 2014 à 11:55
Le code DECALER se base sur la cellule A7, décale la ligne de 1 ;1;et, avec le code EQUIV la colonne du rang du nom cherché par le code dans la ligne A7, c'est à dire 1 pour le premier nom.

Il faut donc enlever 1 pour retomber sur la bonne colonne à partir de A7 ( décalage 0 donc pour le premier nom)

Le 10 lui correspond à la hauteur du champ à inclure dans la liste.

si vous avez plus de 10 noms, il faudra modifier pour que la liste puisse inclure tous les noms.
On peut aussi dans la formule DECALER, ajuster la longueur au nombre de noms de chaque liste, mais elle devient nettement plus complexe.

On peu traiter ça si vous pensez que le jeu en vaut la chandelle.

crdlmnt
0
JSmithJ Messages postés 4401 Date d'inscription mercredi 7 mai 2014 Statut Contributeur Dernière intervention 13 juillet 2021 720
21 juil. 2014 à 12:51
En tout cas, si vous voulez approfondir avec la fonction DECALER, moi ça me va ^^
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 419
21 juil. 2014 à 13:39
Fonction DECALER
ressortir une valeur ou définir un champ, une plage

si hauteur et largeur ne sont pas définies, c'est la valeur de la cellule trouvée qui ressort
=DECALER(cellule départ;nombre de lignes à décaler;nombre e colonne à décaler; hauteur du champ; largeur du champ)

dans le cas de l'exemple de ce fil
=DECALER(Listes!$A$7;1;EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)-1;10)
cellule départ: liste!A7
décalage ligne 1 (donc A8 trouvée)
décalage colonne EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)
soit position de la valeur fiche G8 dans le champ de liste A7:F7, diminuée de 1 pour correspondre à 0 en 1° colonne
hauteur de champ : 10 lignes
largeur de champ pas d'info, donc une seule colonne

Pour ajuster la hauteur aux nombres de textes dans chaque liste (mais sans cellule vide intercalées)
=DECALER(Listes!$A$7;1;EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)-1;NB.VAL(DECALER(Listes!A7;1;EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)+1;100))-1)

NB.VAL(DECALER(Listes!A7;1;EQUIV(Fiche!$G$8;Listes!$A$7:$F$7;0)+1;100))-1)
cette partie du code compte le nombre de valeur écrites dans les 100 lignes du champ trouvé par EQUIV et en rajoute une pour compenser la cellule vide en tête de champ

pas facile d'expliquer ça par écrit.J'espère avoir été clair.
Dans tous les cas... peux pas faire mieux

crdlmnt
0
JSmithJ Messages postés 4401 Date d'inscription mercredi 7 mai 2014 Statut Contributeur Dernière intervention 13 juillet 2021 720
21 juil. 2014 à 14:34
Merci à toi, je vais essayer d'étudier ça ;-)
0
Zulyee7113 Messages postés 14 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 26 décembre 2014
22 juil. 2014 à 08:38
Merci pour toutes ces réponses
0