Liste déroulante "dynamique"

Bonsoir,

Dans une discussion précédente vous m'aidiez à utiliser la formule RECHERCHEV ; grâce à vous je suis parvenu à mettre en place une base de travail qui me sera extrêmement utile.

Pour résumer, j'avais des codes que je voulais lier avec leur correspondance.

Il reste un petit souci auquel je ne vois qu'une solution.

En l'occurrence, le problème vient du fait parfois il y a plusieurs fois le même code pour des correspondances (espèces floristiques) différentes.

Exemple :

Rese lute = Reseda lutea

= Reseda luteola

Sauriez-vous comment je peux faire en sorte qu'à chaque fois que plusieurs correspondances sont disponibles, une liste déroulante affiche les choix possibles, il ne resterait plus qu'à sélectionner ce qui convient.

La solution que j'ai trouvé c'est de faire une liste et de proposer un menu déroulant lorsqu'on tape de code adéquat. Sauf que je vais avoir une liste de 33000 lignes ; pas évident de s'y retrouver si toutes les lignes sont proposées.

Merci de votre attention,

Bonne soirée !

15feuille-test.xlsx (11.65 Ko)

Bonjour

une proposition à étudier

13feuille-test.xlsx (13.76 Ko)

Bonsoir,

Merci de votre aide ;

J'ai donc désormais l'indication "a choisir" lorsqu'un code conduit à plusieurs résultats.

Puis-je lui demander, lorsqu'il y a écrit "à choisir" dans la cellule, de rechercher (via RECHERCHEV je pense ?) toutes les correspondances et les proposer sous forme de liste ?

Faut-il que je créé une liste différente à chaque fois qu'il y a des correspondances multiples ? A ce compte je suis partis pour faire 15 000 feuilles

En tout cas ce que vous proposez m'est déjà très utile car il me permet d'identifier systématiquement les "cellules à risque" ce qui est extrêmement utile ; sauf que je me rend compte qu'il doit y avoir 1 code sur 4 qui conduit à deux correspondances minimum.

EDIT : A l'heure actuelle la formule est la suivante :

=SI(NB.SI(Feuil1!$E$2:$E$144304;A49)>1;"choisir ->";RECHERCHEV(A49;Feuil1!$E$2:$G$144304;2;FAUX))

Si dans la plage de données le nombre de codes identiques est supérieur à 1 alors indiquer "choisir ->" ; sinon, rechercher la correspondance dans la plage de données "...".

Pour réduire significativement les codes à deux correspondances j'aimerais que la formule fasse ceci :

Si dans la plage de données le nombre de codes identiques est supérieur à 1 alors indiquer "choisir ->" ; si une cellule indique "choisir ->" alors rechercher dans la plage de données =Feuil1!C2:C144332 si les correspondances sont similaires alors utiliser la correspondance dans la plage de données =Feuil1!F2:F144332 (en face) ; si les cellules sont différentes alors "proposer un menu déroulant => Qui propose les plusieurs choix auxquels on a affaire" ; dans la plage de données le nombre de codes identiques est égal à 1 rechercher la correspondance dans la plage de données "...".

En vert c'est ce qui existe déjà.

C'est assez violent comme requête, je ne sais pas si c'est clair et si c'est bien faisable

Je vais aussi voir s'il n'y a pas moyen de tourner le problème autrement (ex : faire l'analyse 2 fois en se basant sur les 2 listes de correspondances pour éviter la grande majorité des doublons).

Je joins un petit document Excel qui intègre la seconde liste de correspondances "Correspondances Valides"

Bonne soirée !

4feuille-test2.xlsx (18.14 Ko)

Bonsoir,

J'ai donc désormais l'indication "a choisir" lorsqu'un code conduit à plusieurs résultats.

Puis-je lui demander, lorsqu'il y a écrit "à choisir" dans la cellule, de rechercher (via RECHERCHEV je pense ?) toutes les correspondances et les proposer sous forme de liste ?

C'est exactement ce que j'ai fait dans la case située juste à droite de la cellule, c'est pourquoi il est marqué "à choisir" avec une flèche à droite !

Woo c'est exactement ça !!

Je n'avais pas compris car il n'y avait pas de formule dans le cellule, du coup je la croyais vide... Et la petite flèche à droite indiquant un menu déroulant ne percutait pas trop mon esprit ...

Je remarque que si je copie colle la formule, le traitement se fait, mais pas de liste déroulante proposée, cela est donc intégré au document via l'ajout de listes déroulantes ? En fait il faut copier la "cellule vide" ; surprenant.

Peut-être n'est-ce pas possible... J'aimerais bien que la "validation des données sur liste" soit proposée directement sur les cellules concernées (et pas dans les cellules en face).

Car ce document Excel va venir s'intégrer dans un plus gros document qui va extraire de la colonne correspondance les infos nécessaire à la création de tableaux de synthèse. S'il y a deux colonnes, ça va poser des problèmes.

Est-ce que j'en demande trop ?

EDIT

Tout du moins, il faut que les deux colonnes se retrouvent dans la même colonne ; donc finalement une simple formule "concatener" à la place de la colonne qui m'intéresse devrait faire l'affaire !

Peut-être n'est-ce pas possible... J'aimerais bien que la "validation des données sur liste" soit proposée directement sur les cellules concernées (et pas dans les cellules en face).

EDIT

Tout du moins, il faut que les deux colonnes se retrouvent dans la même colonne ; donc finalement une simple formule "concatener" à la place de la colonne qui m'intéresse devrait faire l'affaire !

Malheureusement ce n'est pas possible, sauf à systématiquement proposer la liste déroulante même quand il n'y a qu'une possibilité ! Et concaténer une valeur et une liste déroulante non plus.

Je peux juste améliorer la lisibilité comme ceci avec une MFC

10feuille-test.xlsx (13.92 Ko)

Bonjour,

Merci beaucoup pour la réponse !

Est-ce qu'il serait possible de m'expliquer la démarche à suivre pour faire fonctionner cette solution dans un autre document que le votre ?

Je m'y prend ainsi :

Dans une zone de texte j'indique ceci :

Liste= =DECALER(Feuil1!$F$1;EQUIV(Feuil2!A1;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

Je sélectionne ma colonne => Validation des données => j'indique =Liste dans la Source.

Là, j'ai divers messages d'erreur :

"La source est reconnu"e" comme erroné"e". Voulez vous continuer ?

"Impossible de trouver une plage nommée que vous avez spécifiée"

(Les traducteurs sont excellents)

Est-ce qu'il est possible de réduire le nombre de propositions ? La liste déroulante propose les données correspondantes mais également beaucoup de données proches. Par moments ça fait un choix énorme.

Bonne journée !

je jette un œil demain matin à la fraîche (4h30)

bonjour

estce que

(Feuil2!A1;Feuil2!A17;Feuil2!A17 sont bien renseignées , si un Equiv "foire" tu ne pourras l'installer

cordialement

pour répondre aussi aux interrogations, de Tulipe, peux-tu mettre un jeu de valeurs dans les cases en jaune du classeur joint ?

6decaler.xlsx (9.12 Ko)

bon, j'avance tout seul

je ne sais pas ce que tu veux faire ... mais mon exemple ne donne pas d'alerte !

mais je parie que tu mélanges les 1 et 17, voire les $E:$E et $F !! n'aurais-je pas raison ? isn't it ?

capture d ecran 111
5decaler.xlsx (10.24 Ko)

Bonsoir,

Il me faut du temps pour comprendre, j'ai régulièrement des recherches à faire sur le fonctionnement d'Excel.

Dès que j'ai des réponses à apporter je poste !

bonjour

estce que

(Feuil2!A1;Feuil2!A17;Feuil2!A17 sont bien renseignées , si un Equiv "foire" tu ne pourras l'installer

Je ne pense pas mélanger, par contre ce "17" est très étrange.. il ne mène nulle part dans le document initial ; c'est une cellule vide (que je fini par remplir si j'ajoute des données).

choix = =DECALER(Feuil1!$F$1;EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

Je viens de vérifier, c'est exactement la même chose ; pas de 1 et 17 ou de $E:$E et $F mélangés.

EDIT : Je ne comprends pas le document précédent.

Merci

Bonjour,

pour avancer ... https://forum.excel-pratique.com/viewtopic.php?p=677871#p677871

ce qui est bien est de voir une évolution logique

=DECALER(Feuil1!$F$1;EQUIV(Feuil2!A1;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

=DECALER(Feuil1!$F$1;EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

il est plus normal que ces deux termes soient en effet égaux

DECALER(Feuil1!$F$1;EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

Bonsoir,

J'utilise bien la même formule ; depuis le début (je ne sais pas d'où j'ai sorti "EQUIV(Feuil2!A1;Feuil1!$E:$E;0)-1".

=DECALER(Feuil1!$F$1;EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1;;EQUIV(Feuil2!A17;Feuil1!$E:$E;1)-EQUIV(Feuil2!A17;Feuil1!$E:$E;0)+1)

J'ai donc le message d'erreur qui indique que les données sont erronées.

Si je part d'un document vierge en recommençant tout du départ, il m'affiche le message d'erreur :

"impossible de trouver une plage nommée que vous avez spécifié"

Merci.

Bonne soirée !

Bonjour,

décompose ta formule et teste la par "parties"

=EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1donne 20 comme résultat (presque logique car Abar jupu var. jupu se trouve ligne 21, sauf que je ne comprends pas le -1, quel intérêt ?)

=EQUIV(Feuil2!A17;Feuil1!$E:$E;1)donne 6 .... et comme tu fais la différence entre les 2, tu obtiens un nombre négatif !!

Ta deuxième formule ne donnera un chiffre cohérent que si tu fais un tri sur la colonne E de la Feuil1 !

Bonjour,

@ Steelson,

La mouche ne dit pas tout !...

Sa base de travail comporte un max de lignes de l'ordre 550.000 lignes, et s'il a épuré, le nombre de lignes de cette dernière est de l'ordre de 250.000 lignes.

Alors une liste déroulante pour cibler les doublons !...

Cdlt.

Re,

Pour 1 aime de plus, je te donne le nombre de colonnes…

Cdlt.

Voilà, comme cela tu es à 200 cœurs (ou 2 sans cœur)

Re,

Chose promise, chose due : 40 colonnes.

Je t'aurais bien mis un cœur moi aussi mais tu en as déjà 186.

C'est beaucoup !...

Bonne fin de journée.

Cdlt.

Bonjour,

décompose ta formule et teste la par "parties"

=EQUIV(Feuil2!A17;Feuil1!$E:$E;0)-1donne 20 comme résultat (presque logique car Abar jupu var. jupu se trouve ligne 21, sauf que je ne comprends pas le -1, quel intérêt ?)

=EQUIV(Feuil2!A17;Feuil1!$E:$E;1)donne 6 .... et comme tu fais la différence entre les 2, tu obtiens un nombre négatif !!

Ta deuxième formule ne donnera un chiffre cohérent que si tu fais un tri sur la colonne E de la Feuil1 !

Ce n'est pas moi qui ait écris cette formule, je ne pourrais pas vraiment expliquer l'intérêt du -1

N'étant pas chez moi je n'ai pas pu regarder, mais je vais regarder ça ce week end.

Bonne soirée !

Rechercher des sujets similaires à "liste deroulante dynamique"