Visual basic:recherche valeur dans cellule

Bonjour,
Je souhaiterais rechercher par le biais de 4 combobox les valeurs des cellules respectivement en colonne A,puis B ,puis C puis D et reporter la valeur de la cellule en E correspond a cette ligne dans un listbox.
En résumé,si valeurcomboBox1 = valeur trouvé dans la colonne A
et si valeurcomboBox2 = valeur trouvé dans la colonne B
et si valeurcomboBox3 = valeur trouvé dans la colonne C
et si valeurcomboBox4 = valeur trouvé dans la colonne D
alors la valeur en colonne E correspond a cette meme ligne = a stocker dans un listbox
C'est pour éviter d'alourdir le programme,surtout qu'il faut répeter manuellement chaque ligne de chaque colonne!:

If Me.Combobox1 = sheets("feuil4").Range ("A1").Value And If Me.Combobox2 = sheets("feuil4").Range ("B1").Value And If Me.Combobox3 = sheets("feuil4").Range ("C1").Value And If Me.Combobox4 = sheets("feuil4").Range ("D1").Value Then
ListBox1.AddItem Sheets ("Feuil4").Range("E1")

Je pensais a une boucle,mais je bloque pour mon application
merci de votre précieuse aide!

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Quel boucle ? sur les combo ?

    tu t''adresses toujours à la ligne 1 (A,B1;;;;) ?

    merci d'avance d'être précis dans ta demande
    1. bonjour Michel et merci pour ta réponse.

      En fait,je souhaiterais éviter la longue et fastidieuse programmation dans mon userform
      Le code suivant fonctionne bien,mais il est trés lourd a gérer,car il faut que je rentre manuellement chaque numéro de ligne(A1,A1,A1,A1,A1 puis A2,B2,C2,D2,E2 etc).
      Pour expliquer un peu plus clairement mon application,j'ai crée 2 userforms(on va dire u1 et u2).
      dans u1,j'ai mis 4 combobox et un textbox.
      chaque valeur rentré dans un combobox est stocké dans une feuil4(en A1,B1,C1 et D1 puis en suivant,A2,B2,C2,D2 etc) avec le code suivant:
      Private Sub ComboBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
      Set ws1 = Worksheets("Feuil4")
      derlig = ws1.[A65536].End(xlUp).Row + 1
      If derlig < 1 Then derlig = 1
      ws1.Cells(derlig, 1).Value = MAJ.ComboBox3.Text
      End Sub
      Dans l'userform2,j'ai 4 combobox identique,qui vont chercher dans la feuil4 les données saisie dans l'userform1.
      Mon idée est de simplifier le programme pour qu'a la condition remplie en A1,B1,C1,D1 avec les 4 combobox, la valeur stockée en E1 apparaisse dans un listbox. (ListBox1.AddItem Sheets ("Feuil4").Range("E1")
      Je suis débutant et la je bloque!
      si tu peux juste m'aiguiller,je t'en remercie.
      1. et en suivant : A2+B2+C2+D2 = valeur E2 dans un listbox.
        et ainsi de suite.
        pour éviter de fastidieux code:
        If Me.Combobox1 = sheets("feuil4").Range ("A1").Value And If Me.Combobox2 = sheets("feuil4").Range ("B1").Value And If Me.Combobox3 = sheets("feuil4").Range ("C1").Value And If Me.Combobox2 = sheets("feuil4").Range ("D1").Value Then
        ListBox1.AddItem Sheets ("Feuil4").Range("E1")
        If Me.Combobox1 = sheets("feuil4").Range ("A2").Value And If Me.Combobox2 = sheets("feuil4").Range ("B2").Value And If Me.Combobox3 = sheets("feuil4").Range ("C2").Value And If Me.Combobox4 = sheets("feuil4").Range ("D2").Value Then
        ListBox1.AddItem Sheets ("Feuil4").Range("E2") ........etc
      2. Contributeur
        rien-com-pris

        Prend du recul avec ton pb, repose le dans ta t^te comme si tu le découvrais puis rédige le en ayant comme principe que ton lecteur n'a que ton texte pour essayer de t'épauler...
        (d'ailleurs suivant le vieux proverbe ringard "un pb bien posé est à moitié résolu" tu trouveras a lors peut-être toi-m^me la solution.)
        a+