Liste deroulante

Résolu/Fermé
tumankisial Messages postés 27 Date d'inscription mardi 17 mai 2016 Statut Membre Dernière intervention 10 juin 2016 - 18 mai 2016 à 09:05
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 26 mai 2016 à 11:05
Bonjour.
J'ai crée une liste déroulante à partir d'une colonne que j'ai fais sur une autre feuille. Dans cette colonne, il y a plusieurs fois le même mot qui revient. Du coup dans ma liste déroulante, le mot est en plusieurs fois. Est ce que vous avez une solution pour pouvoir n’afficher les mots qu'une seule fois dans une liste déroulante?
Merci d'avance pour vos réponses.

1 réponse

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
18 mai 2016 à 09:37
Bonjour
voyez si ce système, qui utilise une colonne intermédiaire,(B feuil1) peut répondre à votre question.
https://www.cjoint.com/c/FEshKubuQ8C
crdlmnt
0
tumankisial Messages postés 27 Date d'inscription mardi 17 mai 2016 Statut Membre Dernière intervention 10 juin 2016
18 mai 2016 à 10:04
est ce que vous pouvez m'expliquer les formules des colonnes B et C, je ne comprends pas bcp?
Mais merci quand même pour cette première réponse
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
Modifié par Vaucluse le 18/05/2016 à 11:35
re
en B feuil1!

=SI(A2="";"";SI(NB.SI($A$2:A2;A2)=1;MAX($B$1:B1)+1;""))

__SI(A2="";""; renvoie vide si A est vide
__SI(NB.SI($A$2:A2;A2)=1 compte combien il y a de fois le nom de A2 dans u_n champ évolutif depuis le début de liste jusqu'à la hauteur où se trouve la formule (avec le 1° A2 bloqué par $ et pas le second)
__ MAX($B$1:B1)+1 si est égal à 1 va chercher le maximum de la liste au dessus de la formule et rajoute 1(même type de blocage que précédent
donc, la valeur de est incrémenté de 1 à chaque fois que la formule trouve un nouveau nom
__;"") si condition NB.SI=1 non remplie, renvoie cellule vide

en C2:
=SIERREUR(INDEX(A:A;EQUIV(LIGNE(A1);B:B;0));"")

SIERREUR permet (depuis Excel 200), d'annuler la formule si elle renvoie une erreur et donc de renvoyer une cellule vide ou la valeur texte éventuellement placée entre les derniers guillemets

INDEX(A:A;EQUIV(LIGNE(A1);B:B;0));"")
principe:
INDEX(champ;N° de ligne dans le champ; N° de colonne de champ) pour trouver la valeur de la cellule à l'intersection de la ligne et de la colonne désitgnée

(A:A champ de lan valeur à trouver

EQUIV(LIGNE(A1);B:B;0) ressort le n° de ligne dans B:B où se trouve la valeur définie par le code LIGNE(A1) soit ligne A équivaut à 1; LIGNE(A2) équivaut à 2 etc.. donc la valeur de LIGNE(.xx) s'incrément de 1 chaque fois que la formule, descend d'une cellule

et donc le N° de ligne cherchée par EQUIV correspond successivement aux avaeurs de B 1,2,3 etc
Le champ n'ayant qu'une colonne, il nest pas utile de la spoécifiée dans le code INDEX

pour mieux comprendre vous pouvez essayer de tester c"s fomrules indépendemment et voir le résultat:

=NB.SI($A$2:A2;A2) sur la hauteur de la liste

=EQUIV(LIGNE(A1);B:B;0) sur la hauteur de la liste


Notez quer la colonne B peut être masquée, placée plus loin, ou même sur une autre feuille si besoin. Il suffit que les noms de feuilles soient intégrés dans les formules


formule dun nom de champ du menu (List) pour ajuster à la hauteur du champ édité
=DECALER(Feuil1!$C$2;;;NB.SI(Feuil1!$C$2:$C$18;"><"))

=DECALER(cellule départ;décalage ligne; décalage colonne; hauteur de champ; largeur de plage

part de la cellule C2
décalage de ligne pur le départ de plage ;; donc 0
décalage de colonne pour le départ de plage ;; donc 0
Hauteur de champ définie par:
NB.SI($C$2:$C$218;"><") qui compte le nombre de cellules où la formule rne renvoie pas ""

esdpèrant avoir été clair, ce n'est pas facile par écrit

crdlmnt
0
tumankisial Messages postés 27 Date d'inscription mardi 17 mai 2016 Statut Membre Dernière intervention 10 juin 2016
26 mai 2016 à 09:38
j'ai essayé et ça a fonctionné. Super! Merci beaucoup de l'aide
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 398
26 mai 2016 à 11:05
Bonjour
alors je passe le sujet en résolu
Bonne route
crdlmnt
0