Menu deroulant en cascade

Bonjour,

J'utilise un annuaire Excel pour completer mes compte-rendu automatiquement.

Afin d'améliorer l'utilisation, je souhaite utiliser un menu deroulant en cascade (validation des données)

1 - je rentre manuellement le nom de l'entreprise souhaitée (liste créée via formule =unique)

2 - je selectionne le numero précis du contact (liste via formule =filre...) en référence à la cellule renseignée au point 1

Cela fonctionne parfaitement .

MAIS,

si je renseigne la 2eme entreprise dans mon CR, la liste de contact renvoi à celle de l'entreprise 1 selectionnée ci dessus... toujours référence à la 1er ligne...

Avez vous une solution ?

Est-il possible également, que le 1er "numéro" de la liste se renseigne automatiquement lorsque l'on saisie le nom de l'entreprise ?

Ci dessous, le fichier excel avec les éléments.

Merci par avance de votre aide.

Cordialement, Benoit

Salut,

En voyant ta demande, je me dis qu'une solution par macro serait très certainement la meilleure.

Mais je ne comprends pas suffisamment ton fichier et tes souhaits afin de te proposer immédiatement une solution.

Je te fournis alors un fichier qui te montre l'une des milles possibilités de résoudre de tels problèmes, même si ça ne correspond probablement pas exactement à ton souci. Dans ce fichier, tu acceptes les macros puis tu peux choisir une marque par le bouton en place, par rapport à la marque choisie, tu as la liste de ses marques et si tu cliques sur une marque, tu as un exemple d'utilisation de cette donnée (ici un MessageBox s'ouvre, mais on pourrait faire bien d'autres choses avec cette donnée).

Si cette idée te tente, tu devrais me fournir une fichier dans lequel ta base de donnée serait très claire (dans le fichier reçu je ne sais pas trop quelles sont les données de base et quelles sont les données ajoutées pour ta démo) et indiquer très clairement sur ton fil (et non pas dans ton fichier) le résultat souhaité (par exemple, je voudrais que sur la feuille ''XX'' je puisse choisir dans la cellule B23 la liste des collaborateurs inscrits dans ma base de données sur la feuille ''YY'', sur la ligne1, et que la liste de leurs contrats apparaisse en regard dans la cellule C23. Dans cet exemple, on ne passerait pas par un formulaire tel que dans ma démo).

A te relire.

5demo-13-01.xlsm (21.06 Ko)

Bonjour

Ci joint ma solution

A+ François

Bonjour Yvouille,

merci de ta proposition, j'ai regardé ton exemple et cela est très interresant, je suis Ok pour utiliser macro et / ou combobox

* 1/ Ci dessous le fichier reajusteé (avec explication ci dessous) :

a/ la feuille "annuaire" correspond à mon annuaire. Ligne d'entête avec numero unique, nom entreprise, representant de l'entreprise, nom, prénom, télephone, mai, siret etc...réduit à 3 colonnes dans ce fichier exemple: numéro, entreprise, et nom.

b/ la feuille "CR" correspond à mon fichier compte rendu, ou j'indique les entreprises intervenues.

* 2 / résultat souhaité, sur la feuille "CR"

a/ cellule C4 : selectionner une entreprise

b/ cellule B4 : selectionner un des numéros associés à l'entreprise selectionné en C4

c/ cellule C5 : selectionner une entreprise

d/ cellule B5 : selectionner un des numéros associés à l'entreprise selectionné en C5

---------

Bonjour FanFan38,

merci de ta proposition, mais ne correspond pas a ce que je recherche. Effectivement, la liste des numéros n'est pas associé à l'entreprise selectionnée... (je travail actuellement de cette façon, ou presque, saisir le numero manuellement..)

Merci pour votre aide

Re,

Je ne suis pas certain d'avoir bien compris ton souhait.

Dans le fichier ci-joint, si tu cliques sur le bouton ''Go'' (qui peut être renommé), tu as un formulaire qui s'ouvre dans lequel tu peux choisir une entreprise. Ces entreprises sont celles du tableau B2:D12, remis dans l'ordre alphabétique.

Si tu ajoutes des entreprises au tableau indiqué ci-dessus, la liste déroulante s'adapte en conséquence.

Les numéros uniques correspondant à l'entreprise choisie sont alors listés en dessous. Si tu cliques sur l'un de ces numéros, une fenêtre s'ouvre et t'indique quel est le nom du contact y correspondant. L'utilisation de ces données dans cette fenêtre n'est qu'un démonstration de ce qui est possible. A toi de me dire ce que tu veux faire avec les données de la ligne sur laquelle a été trouvé le numéro unique.

Afin de ne pas travailler dans le vide, ce serait bien que tu me montres un fichier avec toutes les colonnes possibles, à moins que tu sauras modifier le code VBA toi-même par la suite.

Pour l'instant ce formulaire reste ouvert après que la fenêtre indiquant le nom trouvé est refermée, mais bien entendu qu'il pourrait être immédiatement refermé si tu ne veux pas ou ne dois pas effectuer plusieurs actions identiques à la suite.

Amicalement.

Re bonjour Yvouille,

Merci pour ce nouveau retour.

nota : je prefere partager ce fichier avec 2 feuilles (qui representent 2 classeurs disctincts en utilisation réelle). je pense pouvoir etre capable d'adapter le code vba et/ou liaison en interne après avoir trouvé la solution.

La feuille "annuaire" correponds a mon annuaire fichier source avec l'ensemble des informations utilisées sur mon autre classeur "CR". En selectionnant le numero unique de l'entreprise, cela renseigne le nom etc..

Je souhaite utiliser le formulaire disponible sur la feuille "annuaire" mais dans la feuille "CR" directement, et cela pour completer chaque ligne avec une entreprise différente... (numero entreprise et nom...)

J'espere que cela vous donne plus de compréhension?

MErci encore.

Ok, je comprends que le bouton devrait se trouver sur la feuille ''CR''.

Mais d'une fois que tu as sélectionné une entreprise et un numéro unique, que veux-tu en plus exactement, à la place de cette fenêtre qui s'ouvre actuellement avec le texte ''Le ''Nom'' est : xxxxxx" ?

Donne-moi deux exemples si tu choisis l'entreprise Binut et le numéro unique e-0005 puis à la suite, l'entreprise Lulu avec le numéro a-004. Indique moi avec précision : Après avoir cliqué sur le numéro e-0005, je voudrais que les données qui se trouve dans la plage X20:Z20 sur la feuille ''AA'' soient reportée sur la feuille ''BB'' à la suite des données en place sur la plage T23:V23 puis après avoir cliqué sur le numéro a-004, je voudrais ..........

Re,

ok je vais essayé ...

Dans feuille "CR", je vais selectionner les entreprises qui sont intervenues. Dans cette exemple ; 5 entreprises...

pour l'entreprise 1 :

1/ lorsque je clique sur la cellule C4, je selectionne une entreprise

2/ je selectionne alors en cellule B4, le numero unique correspondant à l'intervenant (nom...)

3 / le nom en cellule D4 de l'intervenant s'affiche grave à la formule =rechcercev....

pour l'entreprise 2 :

1/ lorsque je clique sur la cellule C5, je selectionne une entreprise

2/ je selectionne alors en cellule B5, le numero unique correspondant à l'intervenant (nom...)

3 / le nom en cellule D5 de l'intervenant s'affiche grave à la formule =rechcercev....


pour l'entreprise 3 :

1/ lorsque je clique sur la cellule C6, je selectionne une entreprise

2/ je selectionne alors en cellule B6, le numero unique correspondant à l'intervenant (nom...)

3 / le nom en cellule D6 de l'intervenant s'affiche grave à la formule =rechcercev....

pour l'entreprise 4... et pour l'entreprise 5 la meme....

Je n'ai aucune action specfique a réaliser sur mon fichier "annuaire".

J'espere avori eté plus clair ?

Merci encore !

Salut,

J’ai de la peine à te suivre !

Tout d’abord tu m’as dit que ma solution par formulaire te semblait la panacée, puis dans ton dernier message tu sembles dire que tu veux tout autre chose !

Si je suis encore une fois complètement à côté de la plaque avec ma nouvelle proposition, soit tu m’expliques clairement ce que tu veux, soit je risque de laisser tomber ton fil.

Dans le fichier ci-joint, à chaque fois que tu sélectionnes la feuille ‘’CR’’, les données en place dans la plage B4:D8 sont vidées. Tu peux alors choisir une entreprise dans les listes déroulantes de la plage C4:C8 - cette liste est réactualisée à chaque fois en fonction de tes modifications sur la feuille ‘’annuaire’’ – et les numéros correspondant à l’entreprise choisie sont actualisés dans la colonne B y correspondant.

Une fois le numéro choisi, le nom y correspondant apparait dans la colonne D.

Si tu modifies le nom d’une entreprise en place, les colonnes B et C se vident et tu peux recommencer l’opération.

Si l’on s’approche très clairement de ton souhait et qu’il ne faut modifier que des détails, je suis bien entendu toujours à disposition.

Chaleureusement.

Bonjour BenitoAP, Yvouille, Fanfan38,


Sans changer la présence de ton filtre en première feuille.

La sélection d'une société en feuille 2 dans une de tes listes de validation impliquera la modification des choix possibles dans les autres colonnes.

Bonsoir,

(désolé pour mon absence ce jour...vie famillial oblige...)

Yvouillle, d'abord désolé pour mes explications qui portent a confusion. J'ai utilisé votre fichier excel v2 avec macro, et cela est juste parfais !

Est-il possible d'enlever la fonction "effacer" lorsque l'on revient sur l'onglet ? L'objectif est de selectionner les entreprises concernées pour un projet à la rédaction du CR et que cette liste definie reste en place (et/ou eventuellement peut être agrémentée de nouveaux contacts ou en modifier un...).

Je ne pense pas réussir a mettre en application cela sur mes fichiers de travail. Notament la contraite où "annuaire" et "cr" dont en réalité 2 classeurs disctincts.

Peut-etre, que vous pourriez indiquer quelques remarques sur la macro pour m'aider à l'adapter ('...) ? Merci encore pour ton aide.

X Cellus, Merci de votre proposition.Celle ci semble (peut-etre) plus facile à mettre en application (?)

Cette méthode fonctionne (mais) avec quelques cliques en trop.

Je m"explique, lorsque je clique sur la cellule C4 pour selectionner une entreprise (menu déroulant) ; Il faut recliquer sur la cellule C4 pour valider mon choix.

La cellule C1 "choix" se alors met à jour avec le nom de la nouvelle entreprise et ainsi acceder aux numéros associées en cellule B4 (ça c'est top).

Avez vous une solution de validation immédiate après selection de l'entreprise ?

Merci à vous.

Cordialement, Benoit

Bonne soirée.

Durant l'utilisation du fichier ''cr'', est-ce que le fichier ''annuaire'' est modifié ou non ?

Si non, une solution serait - par l'intermédiaire d'une macro événementielle - d'aller copier de manière invisible (ou non) les données du fichier ''annuaire'' à chaque ouverture du fichier ''cr'', ainsi on en reviendrait à travailler sur un seul fichier, ce qui simplifierait quand même les choses. Mais cela garantirait de travailler sur le fichier ''cr'' avec des données toujours actualisées.

S'il est possible de partir dans cette direction, est-ce que le fichier ''annuaire'' est placé dans le même dossier que le fichier ''cr'' ou au moins dans l'un de ses sous-dossier ou sous-sous-dossier ? Si oui, l'actualisation des données est plus facile que si non. Mais si non, ce n'est pas impossible non plus

Partons-nous dans cette direction ?

Bonsoir BenitoAP,

En utilisant une liste de validation, il faut bien au minimum sélectionner une cellule où elle se trouve pour pouvoir ensuite faire un choix en cliquant sur la flèche qui apparait alors.

Personnellement lorsque les listes de validation sont nombreuses j'utilise les flèches de direction vers le bas ou vers le haut d'une colonne.

Ainsi je garde toujours la flèche des listes de validation toujours présente.

Bonsoir Yvouille,

Durant l'utilisation du fichier ''cr'', le fichier ''annuaire'' n'est pas modifié (le "cr" affiche simplement les donées "annuaire")

ok pour solution par l'intermédiaire d'une macro événementielle - d'aller copier de manière invisible (ou non) les données du fichier ''annuaire'' à chaque ouverture du fichier ''cr'' et cela garantirait de travailler sur le fichier ''cr'' avec des données toujours actualisées.

Partons donc dans cette direction, le fichier ''annuaire'' est placé dans un dossier sur OneDrive.

***

J'ai réussi à créer un fichier qui fonctionne, fichier "annuaire" ouvert.

J'ai crée une feuille "liste" dans mon fichier "CR".

En cellule B4, j'utilise la formule suivante qui affiche la liste complète des entreprises du fichier "annuaire" :

=UNIQUE('0 Annuaire.xlsm'!Tab_Ent[SOCIETE])

En cellule C4, j'utilise la formule

=FILTRE('0 Annuaire.xlsm'!Tab_Ent[1261];'0 Annuaire.xlsm'!Tab_Ent[SOCIETE]=entn1)

Ici, le nom "entn1" fait reférence à la cellule de la feuille "cr" où j'ai mis en place menu déroulant avec comme source :

=liste!$B$4#

et j'ai créée 1 colonne par entreprise (pas réussi à optimiser cette démarche qui fonctionne mais demande de la rigueur..;hu)

Cette version fonctionne si le fichier "annuaire est ouvert". Lorsque celui ci est fermé, la liasion de s'opère pas !

Message à l'ouverture du fichier :

image

et les formule sont :

En cellule B4 :

=UNIQUE('https://....sharepoint.com/sites/COMMUN/Documents partages/0 Annuaire.xlsm'!Tab_Ent[SOCIETE])

En cellule C4 :

=FILTRE('https://...sharepoint.com/sites/COMMUN/Documents partages/0 Annuaire.xlsm'!Tab_Ent[1261];'https://...sharepoint.com/sites/COMMUN/Documents partages/0 Annuaire.xlsm'!Tab_Ent[SOCIETE]=entn1)

Merci

J'ai réussi à créer un fichier qui fonctionne, fichier "annuaire" ouvert.

J'en suis très content pour toi Je considère donc ton problème comme résolu.

Bonne continuation.

Rechercher des sujets similaires à "menu deroulant cascade"