Private Sub TextBox1_Change() 'au changement dans la TextBox1
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable dl (Première Adresse)
Dim NbVal As Long
NbVal = 0
Me.ListBox1.Clear 'vide la ListBox1
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = .Range("A2:A" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "Feuil1"
Set r = pl.Find(Me.TextBox1.Value, , xlValues, xlPart) 'définit la recherche r (recherche la valeur de la TextBox1 dans la plage pl)
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 'exécute
With Me.ListBox1 'prend en compte la ListBox1 (qui compte quate colonne de 0 à 3 et dont la colonne 3 est masquée)
.AddItem Sheets("Feuil1").Cells(r.Row, 1).Value 'ajoute la valeur de la cellule en colonne A de l'occurrence trouvée
NbVal = NbVal + 1
' .Column(1, .ListCount - 1) = Sheets("Feuil1").Cells(r.Row, 2) 'ajoute la valeur de la cellule en colonne B de l'occurrence trouvée
'.Column(2, .ListCount - 1) = Sheets("Feuil1").Cells(r.Row, 3) 'ajoute la valeur de la cellule en colonne C de l'occurrence trouvée
'.Column(3, .ListCount - 1) = r.Row 'ajoute le numéro de ligne
End With 'fin de la prise en compte de la ListBox1
Set r = pl.FindNext(r) 'redéfinit la recherche r (occurrence suivante)
Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe de nouvelles occurrences ailleurs qu'en pa
End If 'fin de la condition
If NbVal > 0 Then
Me.TextBox2.Value = NbVal
ElseIf Me.TextBox1.Value <> "" Then
MsgBox "Aucun mot trouvé !"
End If
End Sub