Liste déroulante selon remplissage d'une colonne

Bonsoir,

Pour finaliser mon document Excel, j'ai besoin de pouvoir faire apparaître une liste déroulante de choix, en fonction du remplissage d'une cellule.

J'ai une colonne C qui affiche :

"Erreur de saisie"

"Code valide"

"Synonyme"

"Cellule vide"

En fonction de ce qui se retrouve inscrit en colonne B.

Actuellement, j'ai une liste déroulante qui est proposée en colonne B, pour corriger les synonymes et les transformer en noms valides.

Mais ceci ne fonctionne pas lorsque le code saisi est erroné. Par ailleurs, la liste est toujours proposée, même si le code est valide.

Voici ce que je recherche à faire :

Si la colonne C affiche "Erreur de saisie", alors, rechercher le code espèce le plus proche à afficher dans la colonne B.

=SI(NB.SI($C:$C;"Erreur de saisie");RECHERCHEV(Correspondances!$B2;'Database complete'!$AP:$AP;1;VRAI);DECALER('Database synonymes complete'!$AQ:$AQ;EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)-1;;EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)-EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)+1))

Si la colonne C affiche "Synonyme", alors rechercher la correspondance exacte à afficher dans la colonne B.

=SI($C2="Synonyme";DECALER('Database synonymes complete'!$AQ:$AQ; EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)-1; ; EQUIV($B2;'Database synonymes complete'!$AR:$AR;0) - EQUIV($B2;'Database synonymes complete'!$AR:$AR;0) +1);$B2)

Si la colonne C affiche "Code valide", alors, laisser le code tel quel, ne pas proposer de liste.

Si la colonne C affiche "Cellule vide", ne rien faire, ne rien proposer. (ça semble fonctionner déjà comme ça)

A l'heure actuelle, je ne peux faire apparaître qu'une seule liste, je ne sais pas comment mettre des conditions.

Vous auriez une idée ?

Je joins un document Excel à ce post.

Merci de votre attention,

Bonne soirée !

Bonjour,

Si j’essaie de faire une liste à partir de cette formule :

=SI(NB.SI($C:$C;"Erreur de saisie");RECHERCHEV(Correspondances!$B2;'Database complete'!$AP:$AP;1;VRAI);SI($C2="Synonyme";DECALER('Database synonymes complete'!$AQ:$AQ;EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)-1;;EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)-EQUIV($B2;'Database synonymes complete'!$AR:$AR;0)+1)))

J'ai cette erreur "La liste source doit être délimitée ou faire référence à une seule ligne ou colonne".

Pourtant appliquée telle quelle dans une cellule de mon document, le résultat est correct.

Je vais, par ailleurs, être confronté aux "valeurs approximatives" dont je ne peux pas régler la précision...

Bonsoir,

Dans ton fichier mis sur le forum, tu as un tas de #REF!

Du coup, je n'arrive pas à comprendre comment cela doit fonctionner exactement

En tout cas pour moi faut l'aide de VBA

Bonsoir,

Les colonnes B C et E sont fonctionnelles, ce sont les seules qu'il faut regarder. On peut supprimer les autres si on veut ; elles font référence à des infos absentes du document exemple.

Etant donné que je veux faire une liste déroulante à partir de deux bases de données, le choix est défini à partir d'une autre colonne. Ça fait beaucoup de monde à gérer et visiblement Excel ne le peut pas en passant par les formules classiques.

Bonne soirée !

Sujet résolu en passant par des macros.

Rechercher des sujets similaires à "liste deroulante remplissage colonne"