Microsoft 365 menu déroulant conditionnel avec BDD sous forme tableau

hallfabi

XLDnaute Nouveau
Bonjour,

Je cherche à faire une liste déroulante variable en fonction de la valeur d'une première cellule.
en pratique, dans l'exemple en fichier joint, faire une liste dans la colonne "Article" variable en fonction de la colonne "Client" à la hauteur de ligne activée.

je sais le faire avec la fonction validation de données / liste / source =Indirect(champ). malheureusement, la liste de client est devenue tellement longue que le nombre de champs devient compliqué à gérer.

Je cherche à faire cette liste déroulante avec comme base de données un tableau pour que le champ de la liste soit la colonne, quelque soit la longueur de cette colonne.
Je cherche aussi à ce que la liste se réduise au fur et à mesure que l'on tape le début du mot.

Je cherche encore pour finaliser à ce que la colonne "client BDD" du tableau BDD servent également de base à la liste déroulante de mon tableau Ventes , mais sans l'apparition des doublons, avec là aussi une liste qui se réduise au fur et à mesure que l'on tape le début du nom.

J'espère que quelqu'un pourra m'aider,
J'ai préparé un fichier pour alimenter ma demande. Je vous le mets en pièce jointe.
Merci d'avance pour votre réponse
 

Pièces jointes

  • liste déroulante condi-tableau.xlsx
    17.6 KB · Affichages: 11
Solution
Bonjour à tous,

En remplaçant la fonction indirect dans la liste de validation par:
VB:
=DECALER(Listes!$B$1;1;EQUIV($B8;Listes!$C$1:$O$1;0);NB.SI(DECALER(Listes!$B$1;1;EQUIV($B8;Listes!$C$1:$O$1;0);18);"><"))

pour avoir les listes dynamiques

Edit: Changement de fichier, j'ai oublié d'enlever les plages nommées.

JHA

hallfabi

XLDnaute Nouveau
Bonjour à tous,

Un début de piste à améliorer

JHA
Bonjour,
Ca m'a l'air plus qu'un début de piste. ça répond déjà à ma demande primaire concernant la gestion des longues liste.
La seule amélioration je vois nécessaire, serait d'avoir la longueur de la liste déroulante adaptée au nombre de propositions, ou au moins que le curseur soit tout en haut à l'ouverture. En effet, la liste est composée de toutes les cellules de la liste, y compris les vides. Comme la liste s'ouvre au milieu, on ne voit pas, si il n'y a que 3 entrées dans la liste, qu'il faut scroller vers le haut pour les voir. (voir image)

Si j'ai bien compris :
Pour rallonger les listes, il suffit de faire étendre le champ en cliquer-tirer, avec seul condition qu'on ait le même nombre de colonnes "clients" qu'il y a de lignes dans la colonne "liste", et que cette dernière ait au moins autant de ligne qu'il y a de client différents dans tableau BDD. Et aussi que le tableau des listes soit au moins aussi haut que le max d'articles par client.

Si quelqu'un connait les améliorations bonus qui serait de pouvoir taper les premières lettre et de voir la liste diminuer, je suis quand même preneur, ;)
Mais je vous remercie déjà pour ce premier grand pas.

Fabien
 

Pièces jointes

  • liste milieu.JPG
    liste milieu.JPG
    25.2 KB · Affichages: 21

JHA

XLDnaute Barbatruc
Bonjour à tous,

En remplaçant la fonction indirect dans la liste de validation par:
VB:
=DECALER(Listes!$B$1;1;EQUIV($B8;Listes!$C$1:$O$1;0);NB.SI(DECALER(Listes!$B$1;1;EQUIV($B8;Listes!$C$1:$O$1;0);18);"><"))

pour avoir les listes dynamiques

Edit: Changement de fichier, j'ai oublié d'enlever les plages nommées.

JHA
 

Pièces jointes

  • liste déroulante condi-tableau bis.xlsx
    19.6 KB · Affichages: 14
Dernière édition:

Statistiques des forums

Discussions
313 240
Messages
2 096 480
Membres
106 638
dernier inscrit
Francois wamouno