recherche multi critères vba

  • Initiateur de la discussion Initiateur de la discussion bignou77
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bignou77

XLDnaute Occasionnel
bonjour a tous,
en cherchant j'ai presque trouve mon bonheur sur le forum (ici : https://www.excel-downloads.com/threads/recherchev-en-vba.91794/)
avec le fichier de JP14 (que je remercie au passage).

J'ai dit presque car c'est a très peu de chose ce que je recherche, je voudrais uniquement pouvoir faire une recherche avec plusieurs critères.
que ce soit en mettant les critère a la suite les uns des autres, ou dans 2 ou plusieurs zone de texte pas de problème)
voir dans le fichier joint je voudrais trouve "881123423" avec "d".
si quelqu'un a une idée je prend bien sur.

Merci d'avance et surtout joyeuse pâque a tous.
 

Pièces jointes

Re : recherche multi critères vba

Bonjour,

Une solution parmi d'autres
Code:
Sub test()
Dim i As Integer

For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(i, 1) = "881123423" Then
        If Cells(i, 5) = "d" Then
        [COLOR="SeaGreen"]'***********************************************
        'action à faire si les 2 conditions sont remplies
        '***********************************************[/COLOR]
        End If
    End If
Next

End Sub
 
Re : recherche multi critères vba

Merci ftho (et en plus très rapide)

mais les recherches données était des exemples, il faut que l'on puisse les modifier a chaque recherche. cela dit je regarde ce que je peu faire avec ton code, mais ce que je recherche c'est pas le numéro de ligne, mais que soit afficher le résultat dans un listview (avec les valeurs des autres colonnes
 
Re : recherche multi critères vba

Bonjour


Code:
Private Sub CommandButton1_Click()
  k = 0
  For i = 2 To [A65000].End(xlUp).Row
   If Cells(i, 1) = Val(Me.TextBox1) Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 1)
      Me.ListBox1.List(k, 1) = Cells(i, 5)
      Me.ListBox1.List(k, 2) = i
      k = k + 1
   End If
 Next i
End Sub

Private Sub ListBox1_Click()
  ligne = ListBox1.Column(2)
  Rows(ligne).Select
End Sub
JB
 

Pièces jointes

Dernière édition:
Re : recherche multi critères vba

Avec menu déroulant:

Code:
Private Sub UserForm_Initialize()
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In Range([A2], [A65000].End(xlUp))
     If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
  Next c
  Me.ComboBox1.List = MonDico.items
End Sub

Private Sub ComboBox1_Change()
  Me.ListBox1.Clear
  k = 0
  For i = 2 To [A65000].End(xlUp).Row
   If Cells(i, 1) = Val(Me.ComboBox1) Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 1)
      Me.ListBox1.List(k, 1) = Cells(i, 5)
      Me.ListBox1.List(k, 2) = i
      k = k + 1
   End If
 Next i
End Sub

Private Sub ListBox1_Click()
  ligne = ListBox1.Column(2)
  Rows(ligne).Select
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : recherche multi critères vba

Merci a toi BOISGONTIER,
mais ce n'est pas vraiment ce que je voudrais, en gros je voudrais en tapent 8811 et b que j'ai dans la list les infos "881123423 1102862 b" (ou en tapent 23423 et b).

pas simple a mon avis, mis si quelqu'un trouve ça sera le top du top pour les recherche que j'envisage de faire par la suite.

Merci a tous.
bignou77
 
Re : recherche multi critères vba

Code:
Private Sub CommandButton1_Click()
  k = 0
  Me.ListBox1.Clear
  If Me.TextBox2 = "" Then Me.TextBox2 = "*"
  If Me.TextBox1 = "" Then Me.TextBox1 = "*"
 
  For i = 2 To [A65000].End(xlUp).Row
   If Cells(i, 1) Like "*" & Me.TextBox1 & "*" _
     And Cells(i, 5) Like TextBox2 Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 1)
      Me.ListBox1.List(k, 1) = Cells(i, 2)
      Me.ListBox1.List(k, 2) = Cells(i, 3)
      Me.ListBox1.List(k, 3) = Cells(i, 4)
      Me.ListBox1.List(k, 4) = Cells(i, 5)
      Me.ListBox1.List(k, 5) = i
      k = k + 1
   End If
 Next i
End Sub

Private Sub ListBox1_Click()
  ligne = ListBox1.Column(5)
  Rows(ligne).Select
End Sub

JB
 

Pièces jointes

Re : recherche multi critères vba

Code:
Private Sub CommandButton1_Click()
  k = 0
  Me.ListBox1.Clear
  If Me.TextBox2 = "" Then Me.TextBox2 = "*"
  If Me.TextBox1 = "" Then Me.TextBox1 = "*"
 
  For i = 2 To [A65000].End(xlUp).Row
   If Cells(i, 1) Like "*" & Me.TextBox1 & "*" _
     And Cells(i, 5) Like TextBox2 Then
      Me.ListBox1.AddItem
      Me.ListBox1.List(k, 0) = Cells(i, 1)
      Me.ListBox1.List(k, 1) = Cells(i, 2)
      Me.ListBox1.List(k, 2) = Cells(i, 3)
      Me.ListBox1.List(k, 3) = Cells(i, 4)
      Me.ListBox1.List(k, 4) = Cells(i, 5)
      Me.ListBox1.List(k, 5) = i
      k = k + 1
   End If
 Next i
End Sub

Private Sub ListBox1_Click()
  ligne = ListBox1.Column(5)
  Rows(ligne).Select
End Sub

JB
Bonsoir BOISGONTIER et tous les autres,

je souhaiterais utiliser votre outil pour faire des recherches sur une feuille de calcul par rapport à 2 critères.
La recherche fonctionne parfaitement mais j'ai un gros souci avec l'affichage des résultats : les valeurs dans ma colonne E ne sont pas affichées sur toute la largeur.
Par exemple ma colonne E contient le texte "AMC/W&S" or la fenetre de résultat n'affiche que un morceau du W, le & et un morceau du S.
Un peu comme s'il y avait une colonne trop étroite mais le userform ne permet pas d'ajuster les colonnes.

Je me suis servi de la dernière version du fichier excel sur cette page.

Toute aide serait fortement appréciée.

Vous remerciant par avance.
Tranksen76
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
144
Réponses
5
Affichages
286
Retour