Créer plusieurs listes déroulantes dépendantes d'une seule liste mère

Bonjour,

je travaille sur un fichier Excel qui permettra d'éditer des certificats de conformité (à imprimer, les données propres aux lots expédiés ne seront pas enregistrées, seules les données générales le sont).

J'ai besoin de choisir les adresses des clients en fonction du client (j'ai des cellules séparées à cet effet) + de choisir les produits en fonction du client indépendamment des adresses (sauf erreur de ma part, je ne peux pas faire de liste en cascades avec des adresses car je ne peux pas nommer une plage de données avec des espaces).

J'utilise la validation des données avec la formule SI.CONDITIONS pour les adresses, et j'utilise la validation des données avec la formule INDIRECT pour les produits.

PROBLEME : j'ai environ 23 clients à intégrer à mon fichier (et il est probable que plus tard on en ait d'autres) et la limite de caractères (225 je crois) dans le champs de validation des données va forcément me bloquer très rapidement lorsque j'aurai intégrer davantage de clients (j'en ai que 2 sur mon fichier pour l'instant, car je suis en phase de test).

Comment puis-je contourner ce problème s'il vous plait?

En vous remerciant par avance.

(je n'ai pas joint mon fichier car je n'ai pas compris l'utilitaire sur comment anonymiser mes données : je n'ai pas de zone de texte en bas de ma page pour coller mes données avant de valider sur un bouton "Anonymiser mes données" que je n'ai pas non plus...)

Bonjour et bienvenue sur le forum

Tu devrais joindre ton fichier, au besoin anonymisé ( nom 1, nom 2.... adresse bidon...)

et si possible un exemple de ce que tu veux obtenir... car je ne suis pas sûr d'avoir tout compris.

Bye !

Bonjour gmb,

j'ai anonymisé à la main, j'espère que ça restera compréhensible.

Le but, c'est de sélectionner l'adresse ET le produit en fonction du client. J'ai (parfois) plusieurs adresses par client et j'ai toujours plusieurs produits par client, j'ai donc besoin de liste déroulante.

Mais je ne peux pas utiliser 2 fois la formule INDIRECT dans la validation de données puisque je ne peux pas avoir 1liste d'adresses au nom du client + 1liste de produits au nom du client.

J'ai contourné le problème en utilisant une méthode différente (SI.CONDITIONS) pour les adresses, mais ça ne fonctionnera jamais avec 23 clients, pour seulement 225 caractères possible dans la barre des formules.

J'espère que c'est plus clair.

En te remerciant par avance.

Pardon, ci-dessous le fichier avec les liens qui fonctionnent à l'anonymat

Les méthodes choisies fonctionnent mais sont limités. J'ai besoin d'une autre méthode pour les adresses pour remplacer la formule SI.CONDITIONS s'il vous plait.

bonjour

pour tes listes (en vert )

sans utiliser Indirect ,,toutes les listes sont dynamiques ,tu peux rajouter des données ; voir dans gestionnaire de nom et dans validation de chaque cel verte

17twiginie.xlsm (112.62 Ko)

Bonjour tulipe_4,

Merci pour ton aide. Je regarde aujourd'hui et reviens demain dire si ça convient et/ou si j'ai réussi à transférer au fichier original.

Cordialement.

Bonjour tulipe_4,

Merci pour ton aide. Je regarde aujourd'hui et reviens demain dire si ça convient et/ou si j'ai réussi à transférer au fichier original.

Cordialement.

n'oublie pas de transferer le gestionnaire de nom

Bonjour tulipe_4,

Pour l'instant je suis dans une phase de Décryptage de l'exemple que tu m'as fourni.

Je pense avoir compris le principe de la fonction décaler et le principe de la fonction équiv.

Peux-tu m'expliquer comment tu as écrit l'argument d'hauteur pour la liste d'adresses s'il te plaît ? EQUIV("z^z";DECALER(dept;;EQUIV($D$4;bddclient;0);50))-1

Je ne saisis pas en particulier la signification du "z^z" ni du 50 ni du -1.

Sinon peux-tu m'expliquer aussi comment fonctionne la fonction DECALER NB.SI s'il te plaît? J'ai compris la DECALER NBVAL mais pas celle-ci.

En te remerciant par avance,

Cordialement.

bonjour

Equiv("z^z" .... détermine la position du dernier texte dans une colonne ; ce qui correspond au nb de lignes à decaler

50 ,c'est parce parce que j'ai estimé à la louche que cette plage pouvait faire 50 lignes , idem si 50 colonnes

-1 c'est pour décompter l'entete : les valeurs commencent en ligne 2

NB.SI(.....; "><") compte combien de cel contiennent du texte ( attention pas de cel intermédiaires vides) ,,, si par malheur il y a des vides ,utiliser Equiv("z^z".......)

pour faire des listes en cascade , la methode Decaler est bien plus performante que Indirect

cordialement

Bonjour tulipe_4,

Merci pour ces éclaircissements. Je saisis mieux la construction des formules que tu proposes.

Cela dit, je ne comprends pas à quoi correspond "generic" en fait, à quelle plage de données... puisque marqué $M$1 comme début de sélection ce qui ne correspond à rien de significatif à première vue. Pourquoi $M$1 ?

D'ailleurs, si j'ai bien compris, "dept2" devrait être $A$3 et non $A$2 puisque je cherche à obtenir les références et non les désignations. C'est ça ?

En te remerciant pour ta patience, j'essaie de vraiment bien saisir le principe car je devrais expliquer mon fichier à mes collègues lorsque je l'aurai fini.

Cordialement

bonjour

pardon c'est une erreur de ma part , j'ai été victime du volet mobile qui etait sur M au lieu B

donc ,il convient dans gestionnaire de nom à generic de remplacer le M par un B

tu pourras ainsi acceder à tout les produits de chaque client ,

D'accord merci. Du coup, j'ai réussi à transférer à mon fichier d'origine je te remercie et ça marche nickel.

Mon fichier a un grand frère qui a besoin d'une liste de plus car je dois y faire apparaître mes réf interne en fonction de mes réf clients. Mais du coup, une même réf client correspond à plusieurs réf interne. J'ai tenté d'adapter les formules et noms que tu m'as donné mais ça ne fonctionne que sur les 6premières réf internes, je ne comprends pas pourquoi.

As-tu une idée?

(je n'arrive pas à joindre mes captures d'écran désolé)

RefJ=DECALER('Base de données spécifique'!$B$3;;;;NB.SI('Base de données spécifique'!$B$3:$CZ$3;"><"))

Dep_RefJ='Base de données spécifique'!$A$5

E7=DECALER(Dep_RefJ;;EQUIV($E$6;RefJ;0);;NB.SI(RefJ;$E$6))

Bonsoir,

problème résolu, merci à tulipe_4

Pour mon dernier problème, j'ai juste remplacé NB.SI par NBVAL et ça a débloqué la situation.

RefJ=DECALER('Base de données spécifique'!$B$3;;;;NBVAL('Base de données spécifique'!$B$3:$CZ$3))

Bonne soirée. Cordialement.

Rechercher des sujets similaires à "creer listes deroulantes dependantes seule liste mere"