Recherche double

Saddoud_walid Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut
Je travaille sur un projet sur Excel et j’ai une problème dans la recherche car d’habitude je fait le recherche pour un seul valeur (TextBox1) mais maintenant je faire une recherche pour deux valeurs (TextBox1 et TextBox2)

voici mon code:

Application.ScreenUpdating = False
   Set F = ActiveSheet
   Me.ListBox1.Clear
   
 
 With ListBox1
.ColumnCount = 6
.ColumnWidths = "80;150;80;80;80;80"
.RowSource = ""
End With

   Set plage = F.[b5].CurrentRegion
   plage.Interior.ColorIndex = 2
   Set plage = plage.Offset(1).Resize(plage.Rows.Count - 1)
   Set c = plage.Find(Me.TextBox1, , , xlPart)
   If Not c Is Nothing Then
     i = 0
     premier = c.Address
     Do
       Me.ListBox1.AddItem
       Me.ListBox1.List(i, 0) = c.Offset(0, -1)
       Me.ListBox1.List(i, 1) = c.Value
       Me.ListBox1.List(i, 2) = c.Offset(0, 1)
       Me.ListBox1.List(i, 3) = c.Offset(0, 3)
       Me.ListBox1.List(i, 4) = c.Offset(0, 4)
       Me.ListBox1.List(i, 5) = c.Offset(0, 2)
       
       i = i + 1
       Set c = plage.FindNext(c)
     Loop While Not c Is Nothing And c.Address <> premier
   End If




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.


merci d'avance
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
Jordane, excuse l'incruste

saddoud,
d'après ton tableau il ne peut y avoir de doublon produit+marque: on cherche donc la ligne ou se trouve le produit et la matque par une compraison de concaténation produit-marque dan s l'usf et la feuille
j'ai rectifié les largeurs des colonnes de la listbox
à toi de marquer au dessus de la listbox les désignations

code proposé
Option Explicit
'------------------------------------------------
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 5
.ColumnWidths = "80;150;80;30;30"
.RowSource = ""
End With

End Sub

Private Sub CommandButton1_Click()
Dim Concat As String
Dim Derlig As Integer, Lig As Integer, Donnees
If TextBox1 = "" Or TextBox2 = "" Then GoTo vides
Concat = TextBox1 & " " & TextBox2

With Sheets("feuil1")
Derlig = .Columns("A").Find(what:="*", searchdirection:=xlPrevious).Row
For Lig = 6 To Derlig
If .Cells(Lig, "B") & " " & .Cells(Lig, "C") = Concat Then
Donnees = .Range(.Cells(Lig, "A"), .Cells(Lig, "E"))
UserForm2.ListBox1.Column() = Application.Transpose(Donnees)
Exit For
End If
Next
If Lig > Derlig Then GoTo inconnu
End With

Exit Sub
'gestionnaire erreurs
vides:
MsgBox "Produit et/ou Marque absent(s)", vbCritical
Exit Sub
inconnu:
MsgBox "Produit et/ou Marque inconnu(s)", vbCritical
End Sub


le classeur en retour:
http://www.cjoint.com/c/FGbju4Wth5t

 Michel
1
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Je trouve bien ta recherche de textbox1 ...
 Set c = plage.Find(Me.TextBox1, , , xlPart)

... mais ... où est celle de ta textbox2 ?

Peux tu également nous indiquer en détail le souci (la difficulté) rencontré(e) ?

0
Saddoud_walid Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
salut jordane45

Dans ce code je peux faire la recherche on utilisons un seul textbox et moi je cherche un code avec double recherche .... je veux faire un recherche dans un tableau a base de deux valeur et la ligne trouver sera copier dans un listbox

merci
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Saddoud_walid Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Ces "deux" valeurs... se trouvent comment dans ton fichier ? Où dois tu les chercher ?
Faut il qu'il y ai les deux valeurs ensembles ou si une des deux est présente c'est bon ..???

Comme tu peux le voir... il y a des questions en suspend ... n'étant pas devant ton pc ni dans ta tête.... merci de nous expliquer CLAIREMENT et EN DETAIL ce que tu souhaites obtenir......
0
Saddoud_walid Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Veuillez trouver ci-joint un ficher explicative

https://www.cjoint.com/c/FGbbv7lTgWP
0