Générer une liste de validité filtrée et triée
Bonjour à toutes et tous,
Je tente de générer, sous Excel 2010, une liste filtrée triée dans une validité, le tout hors macros (les contraintes du boulot...)
Ce que j’ai réussi à faire :
- L’utilisateur saisi les premiers caractères, puis ouvre la liste : une liste partielle s’affiche
cela est assez simple, vu que la liste d’origine qui s’appelle "UF" est triée
Edit : si la feuille doit être protégée, autoriser la modification des objets pour l'ouverture de la liste partielle
Ce que je voudrai faire :
- L’utilisateur saisi une chaine de caractères, et, à l’ouverture de la liste, trouve d’abord les items qui contiennent la chaine de caractères saisis
Je me suis donc dit que le plus simple était de m’acharner sur la première validité en C4 du classeur joint, et de repérer les lignes qui contiennent ma chaine de caractères ; je sélectionne donc une plage de cellules, saisie de la formule :
=SI(ESTNUM(CHERCHE(C4;UF));LIGNE(UF);269)
puis validation matricielle par Ctrl + Maj +Entrer
-> si ma fonction CHERCHE trouve la chaine de caractères en C4 dans une cellule de la plage "UF", j’ai le numéro de ligne qui s’affiche, sinon j’ai le chiffre 269.
Cela fonctionne, j’ai bien la plage voulue qui s’affiche, mais cette formule ne fonctionne pas en tant que validité, même si je la nomme.
Je pense que c’est mon principal problème, puisque tout le reste en découle (donc tout le reste... foire
Dans le classeur joint, vous trouverez :
- Colonne A, la liste d’origine triée
- Colonne B, plage B4:B12, les validités qui retournent une liste partielle pour chaque cellule, liste qui dépendent du début de la saisie (cette partie fonctionne bien, c’est "cadeau"
) - Colonne C, mes essais de listes foireuses que je voudrai mettre en place pour C4:C12, basée sur une chaine de caractère
Colonne D, la base de la formule, où je cherche ma chaine de caractère, pour l’exemple cela concerne uniquement C4 - Colonne E, soit je retourne le n° de ligne, soit le chiffre 269
- Colonne F, je trie les n° de lignes en ordre croissant
- Et enfin, colonne G, la liste que je voudrai afficher en tant que validité
Merci d’avance de vos lumières
J’illustre un peu mes propos...
Ce qui donne :
- Colonne A, la liste d’origine triée
- Colonne B, plage B4:B12, les validités qui retournent une liste partielle pour chaque cellule, liste qui dépendent du début de la saisie (cette partie fonctionne bien, c’est "cadeau"
) - Colonne C, mes essais de listes foireuses que je voudrai mettre en place pour C4:C12, basée sur une chaine de caractère
Colonne D, la base de la formule, où je cherche ma chaine de caractère, pour l’exemple cela concerne uniquement C4- Colonne E, soit je retourne le n° de ligne, soit le chiffre 269
- Colonne F, je trie les n° de lignes en ordre croissant
- Et enfin, colonne G, la liste que je voudrai afficher en tant que validité
À noter que la formule en colonne G donne le résultat escompté avec AOO :
...sauf que :
- Pas le droit d’installer AOO au boulot
- AOO ne recalcule la liste qu’après validation de la cellule (il faut saisir la chaine, valider, revenir sur la cellule et ouvrir la liste)
Le fichier est joint dans le premier message de ce fil.
En espérant que ce soit plus clair...
La structure a l"air assez impressionnante
Je dois m’absenter une semaine, mais ne manquerai pas de faire un retour sur ta proposition à mon retour
Finalement, je me suis absenté plus que ça
On atteint pas encore le fonctionnement voulu, par exemple, dans mon fichier joint au premier message du fil, lorsque je demande en C4 une liste contenant la suite de caractère ges, j’aimerai obtenir la liste visible ici en G2 et suivantes (mais dans une validité) :
Or, j'obtiens :
Cela dit, ta piste semble très intéressante, je vais continuer à creuser et ferai un retour ici si j'ai du nouveau.
Encore merci pour cette proposition
Finalement, je vais me débrouiller avec ma saisie des premiers caractères qui affiche une liste partielle, cela couvre plus de 80 % des cas, pour les 20 % restant, je continuerai à chercher directement dans la plage UF (il y a un autofiltre pour faciliter la recherche).
Encore merci à tulipe_4 pour le temps consacré et les nouvelles techniques partagées