Faire une recherche dans une liste box

  • Initiateur de la discussion Initiateur de la discussion zephir94
  • 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 !

zephir94

XLDnaute Impliqué
Bonsoir à tous,

Depuis la valeur d'une textbox d'un userform A ( valeur libérale ) je voudrais surligner la ligne contenant la phrase dans la listebox de l'Userform B, sachant qu'elles seront tristement identiques.

Je crée ma listebox dans mon userform B comme ceci :

Code:
Private Sub UserForm_Activate()
    Dim i As Byte
Dim tata As Integer
Application.ScreenUpdating = False
Feuil5.Select
u = Feuil5.Range("N65536").End(xlUp).Row
    For i = 2 To u
If Feuil5.Range("O" & i).Interior.ColorIndex = 3 Then
UserForm3.ListBox1.ColumnWidths = "20;70;250;60;20;110;30"
ListBox1.AddItem
         tata = ListBox1.ListCount - 1
        ListBox1.List(tata, 0) = Feuil5.Range("A" & i).Value
        ListBox1.List(tata, 1) = Feuil5.Range("B" & i).Value
        ListBox1.List(tata, 2) = Feuil5.Range("C" & i).Value
        ListBox1.List(tata, 3) = Feuil5.Range("H" & i).Value
        ListBox1.List(tata, 4) = Feuil5.Range("I" & i).Value
        ListBox1.List(tata, 5) = Feuil5.Range("J" & i).Value
        ListBox1.List(tata, 6) = Feuil5.Range("P" & i).Value
    End If
    Next
  
Feuil1.Select
Application.ScreenUpdating = True
Label26 = u
End Sub

Par exemple si la valeur de ma textbox userform A est : une double portion de rien je voudrais que la ligne dans la listebox userform B contenant : une double portion de rien soit sélectionnée.

Merci à vous tous pour vos aides
 
Re : Faire une recherche dans une liste box

Bonjour à tous,

J'ai bien avancé hier soir, voici mon code

Code:
 Dim i As Integer
    Dim intPosition As Integer
    For i = 0 To UserForm3.ListBox1.ListCount - 1
        If UserForm3.ListBox1.Column(0, i) = UserForm9.Label18 Then
            intPosition = i
        End If
    Next i
    MsgBox i

J'arrive à trouver la position dans la listebox
Je continu
 
Re : Faire une recherche dans une liste box

Bonjour zephir94, le forum,

Quelques remarques préalables :

- avant de remplir la ListBox il faut la vider...

- au cas où la valeur cherchée se trouve dans plusieurs lignes, mettre sa propriété MultiSelect à 1

- il est bon aussi de mettre sa propriété ListStyle à 1.

La valeur recherchée étant dans UserForm1.TextBox1 voici la macro dans UserForm3 :

Code:
Private Sub UserForm_Activate()
Dim w As Worksheet, u&, x, a(), i&, n%, j
Set w = Feuil5
u = w.Range("N65536").End(xlUp).Row
x = UserForm1.TextBox1 'valeur recherchée, à adapter
If IsNumeric(x) Then x = CDbl(x)
ReDim a(6)
With ListBox1
  .ColumnWidths = "20;70;250;60;20;110;30"
  .Clear 'RAZ
  For i = 2 To u
    If w.Range("O" & i).Interior.ColorIndex = 3 Then
      .AddItem
      n = .ListCount - 1
      a(0) = w.Range("A" & i): .List(n, 0) = a(0)
      a(1) = w.Range("B" & i): .List(n, 1) = a(1)
      a(2) = w.Range("C" & i): .List(n, 2) = a(2)
      a(3) = w.Range("H" & i): .List(n, 3) = a(3)
      a(4) = w.Range("I" & i): .List(n, 4) = a(4)
      a(5) = w.Range("J" & i): .List(n, 5) = a(5)
      a(6) = w.Range("P" & i): .List(n, 6) = a(6)
      j = Application.Match(x, a, 0)
      If IsNumeric(j) Then .Selected(n) = True: .ListIndex = n
    End If
  Next
End With
'Feuil1.Select 'si nécessaire
Label26 = u
End Sub
Bonne journée.
 
Dernière édition:
Re : Faire une recherche dans une liste box

Bonjour Job75,

Merci beaucoup pour ces précisions !
Je découvre les listes boxe ! je vais corriger mon code avec ces conseils.

Bon je vais changer mon fusil d'épaule ! car cela ne fait pas avancer mon problème !
Je voudrais si on sélectionne une ligne de la listetbox copier la valeur de la colonne 2 et 6 dans deux textbox qui sont situées dans le même Userform que la listebox
Une idée pour m'orienter ?
Merci à vous
 
Dernière édition:
Re : Faire une recherche dans une liste box

J'ai trouvé ! merci à vous tous

Private Sub ListBox1_Click()
u = ListBox1.ListIndex
ComboBox1.Value = ListBox1.List(tata & u, 2)
TextBox1.Value = ListBox1.List(tata & u, 6)
'MsgBox u
End Sub
 
Dernière édition:
Re : Faire une recherche dans une liste box

Merci Job75,

La résolution de mon premier post ne m'a pas permis d'avancer dans ce que je voulais faire, j'avais mal cerné le résultat par rapport aux objectifs.
J'ai donc re pensé le cheminement et le plus simple était de récupérer les valeurs de ces deux colonnes !
Merci pour votre code.

J'ai écris avant votre proposition :

Private Sub ListBox1_Click()
u = ListBox1.ListIndex
ComboBox1.Value = ListBox1.List(tata & u, 2)
TextBox1.Value = ListBox1.List(tata & u, 6)
End Sub

il fonctionne bien ! vous le trouvez affreux ?
merci pour tout
 
- 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

Retour