menu deroulant avec saisie semi-automatique par mot clé

ziz59

XLDnaute Nouveau
Bonjour,

Je m'adresse à tous les expert(e)s d'excel, je sais qu'il existe plusieurs sujet pour çà, mais ma problématique est différente, voila j'expose mon soucis :

J'ai un classeur avec 2 feuilles, l'une Recherche, l'autre Liste

1/ dans la feuille Liste => j'ai une colonne avec ma liste des rues trié par ordre croissant.
2/ j'ai creer un nom "Liste" avec la référence Ligne!$A2$A100
3/ dans la feuille Recherche => j'ai créer une liste déroulante avec la formule
=DECALER(Liste;EQUIV("*"&A1&"*";Liste;0)-1;;NB.SI(Liste;"*"&A1&"*"))

En fait la problématique c'est que dans mon exemple j'ai 2 rues contenant "Ronarc'h", seul la première occurrence apparait avec la ligne suivante ou précédente , je sais plus.

Donc la fonction NB.SI fait bien son boulo, car compte 2 lignes. par contre je ne comprends pas pour EQUIV, qui lui trouve que la première lignes.

Donc au final, si je me suis bien fait comprendre, j'aimerais votre aide pour que quand je tape une partie d'un mot compris dans cette liste, seul les lignes contenant ce mot ou partie de mot apparaisse dans cette liste.

Merci d'avance à vous :eek:

Le but ensuite c'est par la suite avec la Fonction RECHERCHEV(), de faire apparaitre les lignes des autres colonnes, mais çà c'est bon, pas de soucis.
 

Pièces jointes

  • liste_rues.xlsx
    8.9 KB · Affichages: 93
  • liste_rues.xlsx
    8.9 KB · Affichages: 105
  • liste_rues.xlsx
    8.9 KB · Affichages: 103

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Bonsoir

Ta formule fonctionne tout à fait correctement, et puisque NB.SI(....) = 2, la liste proposée ne comprend que 2 expressions successives, "Quai de l'amiral Ronarc'h" et "Rue de jardins".

En pièce jointe, j'ai modifié cette formule pour calculer le nombre de lignes à afficher en utilisant la dernière ligne utilisant le contenu de A1.

Défaut de ce système : La liste déroulante ne contient pas uniquement des expressions avec le contenu de A1, mais toutes les expressions de la 1ère ligne à la dernière ligne contenant A1. Ici, cela donne "Quai de l'amiral Ronarc'h", "Rue de jardins" et "Rue de l'amiral Ronarc'h". Il ni a qu'un intrus, mais j'imagine bien que dans ton fichier réel, il y en aura beaucoup plus.

@ plus
 

Pièces jointes

  • liste_rues.xlsx
    9 KB · Affichages: 89
  • liste_rues.xlsx
    9 KB · Affichages: 97
  • liste_rues.xlsx
    9 KB · Affichages: 103

david84

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Bonsoir,
dans la feuille Liste entrer en B1
Code:
=SIERREUR(INDEX(Liste;PETITE.VALEUR(SI(ESTNUM(CHERCHE(Recherche!$A$1;Liste));LIGNE(Liste));LIGNE(1:1)));"")
, valider la formule en matriciel par Ctrl, Maj et entrée et la tirer vers le bas.
Nommer cette nouvelle liste (insertion=>nom=>définir et la nommer Selection.
La formule est
Code:
=DECALER(Liste!$B$1;;;NB.SI(Liste!$B$1:$B$100;"><"))
En A1 de la feuille Recherche remplacer la validation de donnée actuelle par "=Selection".
A+
 

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Re

En pièce jointe, une possibilité, avec une liste déroulante ne renvoyant que les "bonnes" expressions, mais faisant intervenir une plage intermédiaire, nommée listeréduite.

@ plus

PS : Bonsoir David84. La même méthode...
 

Pièces jointes

  • liste_rues2.xlsx
    10 KB · Affichages: 114
Dernière édition:

ziz59

XLDnaute Nouveau
Re : menu deroulant avec saisie semi-automatique par mot clé

Alors je viens de regarder vos proposition, la première n'est pas vraiment adapté, car parfois c'est pire au niveau de l'array.

Ensuite la proposition de david et donc celle que tu as gentillement préparé Sisco, fonctionne bien sur l'exemple, mais adapté sur mon fichier final il y a quelque chose qui déraille, de plus je sais pas comment récupérer des infos de la ligne avec la fonction RECHERCHEV().

Je vous joint mon fichier final.
 

Pièces jointes

  • VOIE_NEW .xlsx
    240.1 KB · Affichages: 84
  • VOIE_NEW .xlsx
    240.1 KB · Affichages: 99
  • VOIE_NEW .xlsx
    240.1 KB · Affichages: 85

ziz59

XLDnaute Nouveau
Re : menu deroulant avec saisie semi-automatique par mot clé

Ah oui je précise qu'ensuite, la finalité, c'est d'ajouter une ligne dans recherche au fur et à mesure qu'un utilisateur veux enregistrer un projet pour une rue.

PS: je me suis posé la question si avec la fonction INDIRECT(), c'est pas mieux adapté, mais le soucis resteras le même car si pour une même commune j'ai 3 rue/avenue/boulevard avec le même mot clé "casino", le prob resteras le même.

PS(SISCO): Au fait pour ta première réponse
=DECALER(Liste;EQUIV("*"&A1&"*";Liste;0)-1;;MAX(SI(ESTNUM(CHERCHE("*"&A1&"*";Liste));LIGNE(Liste)))-EQUIV("*"&A1&"*";Liste;0)-1)

Moi j'avais fait plutôt un truc du genre
=SI(NB.SI(No;"*"&A2&"*")>0;DECALER(No;EQUIV("*"&A2&"*";No;0)-1;0;NB.SI(No;"*"&A2&"*"))-1;EQUIV("*"&A2&"*";No;0))
 

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Bonjour

Cf. une possibilité en pièce jointe, avec 2 listes intermédiaires obtenues à l'aide de formules matricielles à valider avec Ctrl+majuscule temporaire + entrée (environ 200 noms au max dans ces listes intermédiaires). Ca rame un peu vu le nombre de lignes, mais ça fonctionne.

@ plus
 

Pièces jointes

  • VOIE_NEW .xlsx
    206.8 KB · Affichages: 160
  • VOIE_NEW .xlsx
    206.8 KB · Affichages: 203
  • VOIE_NEW .xlsx
    206.8 KB · Affichages: 170
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Re

En allant chercher dans la première colonne, on obtient le fichier en pièce jointe. Ca irait plus vite avec une macro, mais je ne sais pas faire.

Pour ce qui est des RECHERCHEV, on peut aussi faire par exemple avec =STXT(A2;1;CHERCHE(" - ";A2;1)) si toutes les appellations comportent une partie en " - ".

@ plus
 

Pièces jointes

  • VOIE_NEW 2.xlsx
    204.9 KB · Affichages: 142
Dernière édition:

ziz59

XLDnaute Nouveau
Re : menu deroulant avec saisie semi-automatique par mot clé

Ouah c'est super Cisco, ca fonctionne très bien je dirais !!!

seul bémol :

Il est vrai que le calcul est long, mais bon au moins çà fonctionne
Maintenant comment reproduire à la volé si j'insert la copie de la ligne
$a$2;$b$2;$c$3
en 3 ?

car j'ai besoin de reproduire la même chose sur chaque nouvelle ligne.

J'ajoute un nom pour Recherche!A2 ?
 

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Bonjour

Cf. une possibilité en pièce jointe.

Pour obtenir la liste déroulante sur plusieurs lignes, il suffit de tirer la cellule contenant cette liste vers le bas. Pour les autres colonnes, tu peux les tirer (=copier-coller) vers le bas sans problème avec la poignée dans le coin inférieur droit.

J'ai modifié la formule dans liste!F2 pour que la liste réduite soit construite en fonction du contenu de la dernière cellule utilisée dans la colonne Recherche!A:A, en bas, et pas de Recherche!A2 uniquement.

En pratique, cela fonctionne, mais c'est toujours long. Lorsque tu écris une partie de nom dans la colonne Recherche!A:A, il faut être un peu patient...

Défaut du système : Si il y a une erreur au dessus, pour la corriger, on est forcé de l'écrire en entier (la partie de mot écrite dans cette cellule ne sera pas prise en compte pour construire la liste réduite, puisque cette cellule n'est pas la dernière de la colonne Recherche!A:A).

@ plus
 

Pièces jointes

  • new-3.xlsx
    204.5 KB · Affichages: 165
Dernière édition:

ziz59

XLDnaute Nouveau
Re : menu deroulant avec saisie semi-automatique par mot clé

Merci CISCO, l'idée est pas mal, mais il est vrai que çà pose problème quand on veux revenir sur celles du dessus, l'idée serais de créer une référence de ligne de cette liste, je m'explique.

en fait que la listeréduite se face par rapport à la liste sélectionné ?

avec une recherche par index ? 'est faisable tu crois? car mathématiquement, chaque liste a un ID unique ?
Ou sélectionner la ligne ou se situe cette liste dynamique, tu vois ce que je veux dire ?

Pour rendre un peu plus rapide l’exécution du calcul, j'ai réduit la liste à 50 au lieu des 200.

J'avais penser aussi à un truc du genre après sélection de la rue dans la liste, un bouton(macro) qui va insérer une ligne auto dans une autre feuille avec copie des valeur en B2,C2, mais hélas toi comme moi , jm'y connais pas en VBA ou Macro.

PS: oui c'est vrai ? c'est cool çà, et en plus ton pseudo m'es pas inconnu, j'ai fait de la programmation PHP/Sql, mais VBA(inconnu ) et excel je découvre lol :eek:

en tout cas merci, tu m'aide vraiment ...
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : menu deroulant avec saisie semi-automatique par mot clé

Bonjour

l'idée serais de créer une référence de ligne de cette liste, je m'explique.

en fait que la listeréduite se face par rapport à la liste sélectionné ?

avec une recherche par index ? 'est faisable tu crois? car mathématiquement, chaque liste a un ID unique ?
Ou sélectionner la ligne ou se situe cette liste dynamique, tu vois ce que je veux dire ?...

Et non, je ne vois pas trop ! Tu pourrais détailler STP ?

@ plus
 

Discussions similaires