Recherche semi-auto dans excel
Résolu
nicos
-
conni Messages postés 4 Statut Membre -
conni Messages postés 4 Statut Membre -
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
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
-
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/-
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 -
-
Bonjour
https://www.cjoint.com/?3ABqzuQlcU4
et une autre sans VBA( Auteur: Amadéus)
https://www.cjoint.com/c/DABqAKEpUpA
attention: No est une formule nommée -
-
-
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 ?
-
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à
-
-
Bonjour Michel,
On peut se servir des filtres pour obtenir la même chose, sans passer par du code ... ^^
;o) -
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. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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 -
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 -
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