Outils de recherche dans une ComboBox avec liste déroulante dynamique

Anonyme
2024-01-24T20:30:26+00:00

Bonjour,

J’avais besoin d’un outil de recherche dans une banque de donnée d’inventaire contenant environ 1500 produits. J’ai trouvé exactement ce qu’il me fallait sur le net. Une ComboBox qui filtre les résultats à mesure qu’on y inscrit des lettres.

Alors que j’avais Excel 2007, j’ai réussi sans problème à reproduire et faire fonctionner ce qui est expliqué dans le tutoriel suivant :

https://www.youtube.com/watch?v=WZG2-hUxnlE

(Merci à « DE RIEN » pour le tutoriel).

Mon projet étant assez important, j’ai décidé de m’abonner à Microsoft 365 pour avoir les options les plus récentes et à jour. Une fois très avancé dans le projet, j’ai tenté de reproduire cet outil de recherche avec ma nouvelle version à jour d’Excel, sans succès.

Les formules écrites telles que montrées dans le tutoriel fonctionne très bien dans Excel 2007 mais pas dans la version d'Excel a jour. Après plusieurs tentatives et à la suite de mes recherches (essais/erreurs - j'ai du mettre des " @ " dans les formules sans comprendre pourquoi) , j’ai refait les formules et je suis arrivé à un résultat incomplet. Je suis aux limites de mes connaissances.

Ce qui fonctionne

  • La deuxième et troisième colonne qu’on nous fait ajouter dans le tutoriel fonctionnent bien.
  • La ComboBox est bien lié à une cellule pour la recherche. Quand j'inscrit du texte dans la ComboBox il apparaît dans la cellule liée.

Ce qui ne fonctionne pas

  • La quatrième colonne qu’on fait ajouter dans le tutoriel, affiche des résultats correspondant parfaitement à la recherche mais n’affiche pas ces résultats dans une liste sans lignes vides. C’est-à-dire que chaque résultat trouvé reste à la ligne où il a été trouvé avec toutes les lignes vides entre les résultats au lieu que tous les résultats soient affichés un à la suite de l’autre à partir du haut. Il semble que l’indexation ne fonctionne pas (je peux me tromper).
  • Les résultats ne s’affichent pas dans la ComboBox, la liste déroulante n’est pas alimentée en données.

(A noter que je n’utilise pas la première colonne qu’on nous fait ajouter dans le tutoriel puisqu’elle ne m’est pas utile - regroupement de données dans une même cellule).

J’ai l’impression que la nouvelle façon d’écrire des formules fait en sorte que l’on n’obtient pas les mêmes résultats et qu’il faut donc écrire de nouvelles formules. J’espère me tromper et que la solution est plus simple et que c’est lié à mes connaissances d’Excel qui sont d’environ 5 à 6 sur 10 et en VBA 1 sur 10. Alors n’hésitez pas à mettre toutes les informations ou instructions possibles dans votre réponse. Il est clair que de pouvoir fournir un document aiderait à comprendre, mais je ne sais pas si c’est possible de le faire ni comment le faire.

Question

Est-ce que quelqu’un à la solution pour régler les problèmes qui me semblent liés à la nouvelle version d’Excel afin de réaliser ce qui est proposé dans le tutoriel de « DE RIEN » (lien plus haut), ou encore, une tout autre solution qui produit le même résultat c’est-à-dire une ComboBox qui filtre la liste déroulante à mesure qu’on inscrit des données dans le champ de recherche.

Merci!

Microsoft 365 et Office | Excel | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

23 réponses

  1. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-02-05T22:08:10+00:00

    Dans mon fichier de test 36 000 lignes, j'ai viré MaListe

    J'ai mis directement la fonction Filtre dans une cellule et n'ai plus que Maplage qui vient pointer vers la plage dynamique renvoyé par Filtre.

    Pour moi si Excel vire Maplage de ListFillRange c'est que ce qu'elle renvoie ne lui plait pas.

    Concernant ma version : Microsoft 365 MSO (Version 2402 Build 16.0.17328.20000) 64 bits, j'ai un peu d'avance étant en version béta.

    Je viens de voir ça dans ton message : =Feuil!$E$2#

    Ta feuille s'appelle "Feuil" ou il manque un morceau ?

    Peux-tu partager ton document ?

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2024-02-01T07:09:02+00:00

    Salut Hecatonshire!

    Désolé du délais de réponse. J'ai eu de la mortalité dans la famille, ma belle-mère nous a quittée et j'ai délaissé mes projets. quelque temps.

    Ta solution ressemble passablement à ce que j'ai besoin et qui était décrit dans le lien Youtube que j'ai fournis mais en plus simple je crois. C'est génial! J'ai seulement essayé ton fichier et il me reste à reproduire le tout dans mon document avec une grosse banque de données pour voir les résultats. Je ne comprend pas complètement comment tout ça fonctionne pour l'instant mais je vais analyser ton document et te contacter si je n'arrive pas à reproduire cette solution avec les connaissances que j'ai. Je te donne des nouvelles..

    Merci encore pour ton aide, c'est très apprécié!

    Pierre

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-01-25T23:15:31+00:00

    Je n'ai toujours pas testé la manip proposée. 😔

    J'aime bien faire ma cuisine. 😁

    Je te propose dans le fichier en lien une solution maison (donc je ne l'ai pas testé très longtemps).

    Solution Recherche 1 => Via Liste déroulante

    • On ne touche pas à la base de donnée (ici colonne A à C).
    • Pas de VBA
    • On a besoin d'une zone ou vont s'inscrire des données (Ma colonne E, à placer dans une feuille masqué par exemple)

    Pour avoir la liste complète/refaire une recherche, il faut effacer le texte dans la liste.

    La valeur sélectionnée dans la liste est utilisée par la cellule F12 pour récupérer la Qt comme exemple.

    En ce moment mon Excel plante souvent (c'est peut être parce que je suis en version béta 😰) donc je ne sais pas si cette solution est "stable".

    https://www.cjoint.com/c/NAzxkIqcDyA

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2024-01-25T19:19:47+00:00

    Merci Hecatonchire!

    Mais étant donné que le nom des produits de la banque de données regroupe plusieurs informations, il est vraiment important que la recherche se fasse dans tout le contenue de la cellule et que le mot trouvé servent à limiter la quantité de produits proposé dans la liste déroulante à mesure qu'on y inscrit des lettres.

    Voici des exemples de produits dans la liste dans laquelle il faut faire la recherche:

    • Bouchées chocolatées caramel fleur de sel - 7xsachets/7,5x6,25x4,5
    • Gaufrettes saveur triple chocolat - 7xsachets /6.25x4.25 x 3
    • Limonade framboise aromatisant d'eau en poudre - 14xsachets / 1,25x3x3,5
    • Préparation pour chaudrée saveur poulet - 7xsachets/6,25x4,25x3

    La liste comporte environ 1500 items. Si on ne se rappel pas du nom exact du produit mais qu'on sait que la saveur est chocolat, inscrire chocolat dans la recherche permet d'obtenir tous les résultats avec ce mot alors qu'il n'est jamais, ou rarement, placé au début du nom de l'item.

    Pour des raisons pratiques du à la quantité d'items, il est incontournable d'avoir une recherche dans tout le contenu de la cellule et pas seulement à l'aide du premier mot inscrit dans la cellule.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Hecatonchire 53,950 Points de réputation Modérateur bénévole
    2024-01-24T22:51:31+00:00

    Bonjour,

    Je n'ai pas regardé toute la vidéo mais si seulement taper le début du texte est suffisant pour toi, cela peut être fait directement sans programmation en quelques secondes (sur les versions récentes).

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire