Office 365 Liste déroulante en cascade avec tableau

robfocker

XLDnaute Nouveau
Bonjour à tous, dans un fichier excel, j'ai une liste déroulante qui sélectionne le nom du client et ensuite qui met toutes ses coordonnées (adresse, avec vrecherche). Jusqu'à présent ça marche très bien. Par la suite, je veux avoir une autre liste pour les contacts chez ce client sélectionné. Il peut y avoir plusieurs contacts pour chaque client et j'aimerais que cette liste affiche seulement les contacts de ce client. Les informations du client sont dans une BD access, il y a deux tables qui sont chacune importé dans un tableau (une table client et une table contact). Je vous joint un exemple.
La liste client marche à merveille.
La liste contact pas du tout, je croix que c'est parce que le tableau est horizontal au lie de vertical. Bref j'ai besoin de votre aide et je vous remercie d'avance.
 

Fichiers joints

robfocker

XLDnaute Nouveau
Merci, cependant, mes tableaux sont dynamiques selon ce qu'il y a dans les bases de donnée et cela va constamment évolué. Je vais devoir créer une colonne pour chaque client,
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Ton tableau de contacts (Tableau_contacts.accdb_1) peut évoluer, la liste du menu déroulant se mettra à jour.
j'ai modifié la formule de l'onglet "ListeContact".

JHA
 

Fichiers joints

robfocker

XLDnaute Nouveau
J'ignore pourquoi, mais quand je rapporte les choses que tu as fait dans mon vrai fichier (qui était sur le même frame que tu as travaillé), ça ne fonctionne plus. Pourtant j'ai seulement copié les formules (donc les liens sont corrects). C'est dur à expliquer et je ne peux pas envoyé mon vrai fichier (données confidentielles).
Merci
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pour la liste déroulante, la formule est:
VB:
=DECALER(ListeContact!$A$2;;;NB.SI(ListeContact!$A$2:$A$20;"><"))
Assure toi d'avoir les mêmes noms d'onglet.
Code:
=SIERREUR(INDEX(Tableau_contacts.accdb_1[[#Tout];[Nom]];PETITE.VALEUR(SI(Tableau_contacts.accdb_1[[#Tout];[Entreprise2]]=Soumission!$B$8;LIGNE(Tableau_contacts.accdb_1[[#Tout];[Nom]])-53);LIGNES($1:1)));"")
LIGNE(Tableau_contacts.accdb_1[[#Tout];[Nom]])-53
Assure toi que le tableau pour la table contact débute à la ligne 54 autrement, il faut modifier le -53 par la position de ton tableau -1.

JHA
 

Discussions similaires


Haut Bas