Recherche double

Saddoud_walid Messages postés 43 Statut Membre -  
michel_m Messages postés 18903 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

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
    1. Saddoud_walid Messages postés 43 Statut Membre
       
      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
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > Saddoud_walid Messages postés 43 Statut Membre
         
        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