comment afficher une recherche de plusieurs cases en une seule fois??

Thunder

XLDnaute Nouveau
bonjour,

je suis nouveau sur ce site et je suis en train de me faire un fichier avec nom, prix, genre,....
quand je fais une recherche par genre, j'obtiens un chiffre. exemple 5
j'aimerai pouvoir faire afficher les 5 lignes du meme genre l'un derriere l'autre dans une autre feuille.
si qqun peux m'aider....

merci d'avance

Thunder

PS je n'y connais quasi rien en VB...
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : comment afficher une recherche de plusieurs cases en une seule fois??

Bonjour Thunder et bienvenu :)

Pour augmenter vos chances de réponse, il est indispensable de fournir un fichier exemple:
  • Non pas un fichier complet mais un "petit" fichier extrait de votre fichier de travail en ne conservant que quelques lignes par feuille.
  • Fichier expurgé de toutes données nominatives et confidentielles.
  • Avec une feuille montrant le résultat souhaité et avec les explications qui vont bien.


Pour joindre un fichier:
Quand vous rédigez un nouveau message ou quand vous modifiez un de vos messages, passer en mode avancé et cliquez sur 'Gérer les pièces jointes'.
Choisissez vos fichiers (boutons Choisir un fichier), cliquez sur envoyer (bouton envoyer) pour les charger, quand ils sont chargés (les noms des fichiers s'affichent en couleur) refermez la fenêtre (bouton Fermer cette fenêtre) puis cliquez sur 'envoyez...' ou 'enregistrer les changements'.
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment afficher une recherche de plusieurs cases en une seule fois??

Bonjour Thunder et bienvenu, Mapomme, bonjour le forum,

D'abord Thunder il faut se calmer... C'est dimanche, en pleine période de vacances et nous sommes tous bénévoles ici... Tu as posté ton fichier à 10h45 et tu obtiens une proposition à 16h40. Ça me semble raisonnable vu les conditions ennoncées plus haut. Si tu veux te débrouiller seul c'est ton problème mais ce genre de réflexion, oublie !

En pièce jointe ton fichier modifié. Tu double-cliques dans la ligne 1 de l'onglet Feuil1 pour lancer L'UserForm1. Tu tapes ta recherche dans la TextBox1. À chaque caractère édité la ListBox1 s'actualise. Tu double-cliques sur un élément de la ListBox1 pour fermer l'UserForm1 et sélectionner la ligne de l'élément validé dans l'onglet Feuil1.
Le code commenté :
Code:
Private Sub TextBox1_Change() 'au changement dans la TextBox1
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable dl (Première Adresse)

Me.ListBox1.Clear 'vide la ListBox1
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
    Set pl = .Range("A2:C" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
Set r = pl.Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche r (recherche la valeur de la TextBox1 dans la plage pl)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
    pa = r.Address 'définit l'adresse de la première occurrence trouvée
    Do 'exécute
        With Me.ListBox1 'prend en compte la ListBox1 (qui compte quate colonne de 0 à 3 et dont la colonne 3 est masquée)
            .AddItem Sheets("Feuil1").Cells(r.Row, 1).Value 'ajoute la valeur de la cellule en colonne A de l'occurrence trouvée
            .Column(1, .ListCount - 1) = Sheets("Feuil1").Cells(r.Row, 2) 'ajoute la valeur de la cellule en colonne B de l'occurrence trouvée
            .Column(2, .ListCount - 1) = Sheets("Feuil1").Cells(r.Row, 3) 'ajoute la valeur de la cellule en colonne C de l'occurrence trouvée
            .Column(3, .ListCount - 1) = r.Row 'ajoute le numéro de ligne
        End With 'fin de la prise en compte de la ListBox1
        Set r = pl.FindNext(r) 'redéfinit la recherche r (occurrence suivante)
    Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
End If 'fin de la condition
End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'au double-clic dans la ListBox1
Dim li As Integer 'déclare la variable li (LIgne)
With Me.ListBox1 'prend en compte la ListBox1
    li = .Column(3, .ListIndex) 'récupère le numéro de ligne de l'élément double-cliqué
End With 'fin de la prise en compte de la ListBox1
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
    .Activate 'active l'onglet
    .Cells(li, 1).Resize(1, 3).Select 'sélectionne les 3 cellules correspondantes
End With 'fin de la prise en compte de l'onglet "Feuil1"
Unload Me 'vide et ferme l'UserForm
End Sub
Le fichier :
 

Pièces jointes

  • Thunder_v01.xls
    33 KB · Affichages: 90

Thunder

XLDnaute Nouveau
Re : comment afficher une recherche de plusieurs cases en une seule fois??

re salut Robert, mapomme et moi meme...

merci de ta réponse et désolé pour mon comportement... disons que je ne demande jamais rien mais j'essaye toujours de trouver par-ci par-la des reponses.

pour ton fichier, nickel! j'essaye de m'initier au VBA, pas evident mais comme j'ai des bases en programmations, ca devrait aller... plus ou moins lol

donc je met le code dans mon fichier, et je vois ce que ca dis, j'imagine que ca fonctionnera sans problème :)

Merci encore
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : comment afficher une recherche de plusieurs cases en une seule fois??

Bonjour le fil, bonjour le forum,

N'oublie pas de de coller aussi la partie du code qui ouvre l'UserForm1 au double-clic qui se trouve dans le composant Feuil1(Feuil1) :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'au double-clic dans l'onglet
'si le double-clic a lieu dans la ligne 1, annule le mode édition lié au double-clic, affiche l'UserForm1
If Target.Row = 1 Then Cancel = True: UserForm1.Show
End Sub
Et bien évidemment, l'Userform...
 

Guiv

XLDnaute Occasionnel
Re : comment afficher une recherche de plusieurs cases en une seule fois??

Bonjour Thunder, Robert,
Effectivement Thunder, je pense que ton impatience a pu agacer les grands "répondeurs" du forum.
(Edit: impatient, mais non connecté...)
Ceci étant dit, est-ce qu'un simple filtre ne répondrait pas à ta demande? (F1, filtre automatique...)
Bonne soirée
Guiv
 

Pièces jointes

  • thunder_filtre.xls
    16 KB · Affichages: 75

Thunder

XLDnaute Nouveau
Re : comment afficher une recherche de plusieurs cases en une seule fois??

Bonsoir,

Merci de vos réponses et encore excusez mon impatience...

@Robert: merci de m'aider comme tu le fais, car j'ai encore du mal avec ces codes... mais j'essaye de m'en sortir :)

@Guiv: je connaissais ce système de filtre mais je ne m'en sortais pas vu que je savais ou chercher... très pratique en effet.

Merci a vous

Thunder
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 852
Membres
103 005
dernier inscrit
gilles.hery