Private Sub TextBox1_Change() 'au changement dans la TextBox1
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (String)
Me.ListBox1.Clear 'vide la ListBox1
With Sheets("Recherche") 'prend en compte l'onglet "Recherche"
Set r = .Columns(1).Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche r
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
pa = r.Address 'définit l'adresse de la première occurrence trouvée
Do 'éxécute
With Me.ListBox1 'prend en compte la ListBox1
.AddItem r.Value 'ajoute l'occurrence trouvé
.Column(1, .ListCount - 1) = r.Row 'récupère le numéro de ligne de l'occurrence trouvée
End With 'fin de la prise en compte de l'onglet "Recherche"
Set r = .Columns(1).FindNext(r) 'redéfinit la recherche r (occurrence suivante)
Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
End If 'fin de la condition
End With 'fin de la prise en compte de l'onglet "Recherche"
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'au double-clic dans un élément de la ListBox1
With Sheets("Recherche") 'prend en compte l'onglet "Recherche"
.Select 'sélectionne l'onglet
.Cells(Me.ListBox1.Column(1, Me.ListBox1.ListIndex), 1).Select 'sélectionne la cellule
End With 'fin de la prise en compte de l'onglet "Recherche"
Unload Me
End Sub