Recherche double

Fermé
Saddoud_walid Messages postés 41 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 6 novembre 2020 - Modifié par jordane45 le 27/06/2016 à 02:04
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 1 juil. 2016 à 11:17
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

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 1/07/2016 à 11:21
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 38287 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 699
27 juin 2016 à 02:05
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 samedi 17 janvier 2015 Statut Membre Dernière intervention 6 novembre 2020
27 juin 2016 à 17:10
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 38287 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 15 novembre 2024 4 699 > Saddoud_walid Messages postés 41 Date d'inscription samedi 17 janvier 2015 Statut Membre Dernière intervention 6 novembre 2020
27 juin 2016 à 17:20
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 samedi 17 janvier 2015 Statut Membre Dernière intervention 6 novembre 2020
1 juil. 2016 à 03:26
Veuillez trouver ci-joint un ficher explicative

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