Problème liste imbriquée
Résolu
Zulyee7113
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Zulyee7113 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Zulyee7113 Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Problème liste imbriquée
- Liste déroulante excel - Guide
- Liste imbriquée excel - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Liste site streaming illégal - Accueil - Services en ligne
6 réponses
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," ","_"))
;-)
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," ","_"))
;-)
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
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
Merci de votre aide à tous les 2.
https://www.cjoint.com/?3GvllKaWXAc
Voilà mon fichier, j'ai mis des commentaires à l'intérieur
https://www.cjoint.com/?3GvllKaWXAc
Voilà mon fichier, j'ai mis des commentaires à l'intérieur
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est impeccable ça, ça fonctionne super bien ! Merci beaucoup ! :) :) :)
Vraiment merci beaucoup à tous !
Vraiment merci beaucoup à tous !
que veut dire le -1:10 stp ?
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
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
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
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