Option Explicit
Option Compare Text
Private PlgDon As Range, TLgn() As Long
Private Sub UserForm_initialize()
Set PlgDon = Feuil1.Range(Feuil1.[A2], Feuil1.Cells(&H100000, "D").End(xlUp))
End Sub
Private Sub ComboBox1_Change()
Dim TDon(), L As Long, N As Long, Filtre As String
If ComboBox1.ListIndex = -1 Then
Filtre = "*" & ComboBox1.Text & "*"
ComboBox1.Clear
TDon = PlgDon.Columns(4).Value
N = -1
For L = 1 To UBound(TDon, 1)
If TDon(L, 1) Like Filtre Then
N = N + 1: ReDim Preserve TLgn(0 To N): TLgn(N) = L
ComboBox1.AddItem TDon(L, 1): End If: Next L
Else
Application.Goto PlgDon.Rows(TLgn(ComboBox1.ListIndex))
End If
End Sub