Recherche semi-auto dans excel

Résolu
Bonjour,
J'ai une liste magasin avec beaucoup d'articles. Je souhaiterai faire une recherche par saisie semi-auto càd dès que je tape une lettre tous les articles ne commençant pas par cette 1ère lettre ne s'affichent plus; de même pour les lettres suivantes.
exemple : pour rechercher la ligne savon (avec code désignation quantité ...) si je tape la lettre "s" seul les mots commençant par cette lettre reste à l'affichage
puis je tape la lettre "a" (donc "sa" pour le moment dans la recherche) et seul les articles en "sa" reste à l'affichage (savon , sabot, sacs etc .... )
Merci de vos superbes réponses
Configuration: Windows 2000 Internet Explorer 6.0

8 réponses

  1. Contributeur
    bonjour nicos, polux

    regarde si le principe ci joint te convient
    https://www.cjoint.com/?kwoLGa55MX

    edit: voir également cette astuce de gbinforme( bonjour)
    https://www.commentcamarche.net/applis-sites/bureautique/549-creer-des-listes-deroulantes-dans-excel/
    1
    1. Bonjour
      Michel le principe me convient mais il faut encore quelques modif !
      J'aimerai pouvoir dans cette recherche afficher une autre colonne liée aux recherches (dans cette autre colonne il y a le code article qui m'intéresse).
      De plus je souhaiterai que la recherche ne se fasse pas que par les premières lettres mais par exemple quand l'article "savon liquide 1L" je puisse chercher soit "1L" soit "liquide" ....
      Merci bcp
      0
    2. Bonjour,

      Le lien du fichier ne fonctionne plus, peut on le télécharger quelque part?
      0
    3. merci beaucoup
      0
  2. Bonjour,

    Où tapes-tu l'article ? dans une cellule particulière ? dans un formulaire ?

    Que veux-tu dire par "reste à l'affichage " ? Tu supprimes les lignes ne correspondant pas aux critères ou tu les masques ?
    0
    1. Bonjour
      Pour le "reste à l'affichage" se serait plutôt masquer les autres articles.
      Pour taper l'article, se serait soit dans une cellule du fichier excel soit pourquoi pas dans une nouvelle fenetre par un clic sur une case "recherche".
      (le plus simple : je tape dans la cellule recherche en A2 les lettres "sa", seul les mots en "sa" reste affichés (les autresd serait masqués) et là je vois de suite le code de l'article "savon que je recherchai.
      Voilà voilà
      0
  3. Bonjour Michel,

    On peut se servir des filtres pour obtenir la même chose, sans passer par du code ... ^^

    ;o)
    0
    1. Bonjour
      Serait-il possible avec le principe de Michel qui marche à merveille
      1 : de rappatrier la valeur de la ligne (ou d'une colonne supplémentaire) et non de la seule cellule dans le résultat de la recherche ?
      2 : et encore mieux au niveau de la recherche, de pouvoir l'effectuée non pas par l'exactitude du libéllé mais par n'importe quelle lettre ou chiffre contenus dans le libellé (exle : si acetone 1 litre pouvoir faire la recherche par "1" ou "litre"....)
      Cordialement
      PS : et encore merci à Michel pour cette déjà grde avancée.
      0
      1. Contributeur
        BOnjour,

        Excuses- moi, mais je pensais que Polux allait montrer une démo car sa proposition par filtre paraissait intéressante et je n'ai donc pas donné suite

        pour le 2
        modif en gras

        Private Sub TextBox1_Change()
        Dim tablo
        lettre = UCase(TextBox1.Value)
        If lettre = "" Then Exit Sub
        ReDim tablo(0)
        Range("C2:C150").ClearContents
        derlig = Sheets("liste").Range("A65536").End(xlUp).Row
        With Sheets("liste")
            For cptr = 1 To derlig
                test = .Cells(cptr, 1)
                 If .Cells(cptr, 1) Like "*" & lettre & "*" Then
                    tablo(cptr_tablo) = .Cells(cptr, 1)
                    cptr_tablo = cptr_tablo + 1
                    ReDim Preserve tablo(cptr_tablo)
                End If
        Next
        End With
        Cells(2, 3).Resize(UBound(tablo) + 1, 1) = Application.Transpose(tablo)
        
        End Sub


        Pour le 1 si les données sont à droite de la désignation tu peux employer le fonction "rechercheV" sinon il faut employer la fonction imbriquée index-equiv
        0
        1. Salut Michel
          Merci bcp pour le 2 tout marche super biern : c'est énorme
          Quant au 1 serait-il possible de l'intégrer dans la macro, par exemple en affichant dans C onglet recherche la recherche de A onglet liste et B onglet liste ?
          Merci encore
          0
      2. Contributeur
        tout depend de la disposition comme je te l'ai indiqué !

        par ex: colonne A code; col Bb: désignation; col c=prix etc.

        que ce soit par formules ou macros
        0
        1. Contributeur
          Bonjour tout le monde,

          Si tu peux filtrer ta liste sur place voici une autre possibilité que j'avais proposé qui utilise les filtres automatiques justement (avec un peu de code quand même).
          Voir ici

          eric
          0
          1. Bonjour à tous et merci
            Eric ton fichier est exactement ce que je cherchais; un grand merci également à Michel qui m'a bien aidé.
            Super forum pour les débutants excel!
            Forumement
            0
        2. Contributeur
          Bonjour,

          Merci Eric de ton intervention car je suis fâché avec les filtres ( j'ai dû tombé dedans quand j'étais petit)

          J'ai fourgonné ton fichier dans mon grenier.

          cordialement
          0
          1. Contributeur
            Une fois n'est pas coutume, pour une fois que c'est moi qui t'apporte qcq chose... ;-)
            bonne journée
            eric
            0