Private Sub CTNom_Change()
Dim Plage As Range, cell As Range
Dim Recherche As String, Adresse As String
Dim Ligne As Long, n As Long
Dim C As Range
Objet1.Clear
n = 0
Recherche = CTNom  ' ici, il y avait .value, or, ce n'est pas une valeur mais une chaine
Range("B4").Select
Ligne = Sheets("Contact").Range("B" & "65536").End(xlUp).Row
Set Plage = Sheets("Contact").Range("B4:B" & Ligne)  ' ici c'était B1 au leur de B4
With Plage
Set C = .Find(Recherche, , xlValues)
If Not C Is Nothing Then
Adresse = C.Address
Do
   If UCase(Recherche) = UCase(Left(C, Len(Recherche))) Then
      Objet1.AddItem C.Offset(0, 0), n
      Objet1.List(n, 0) = C.Offset(0, 0)
      Objet1.List(n, 1) = C.Offset(0, 1)
      Objet1.List(n, 2) = C.Offset(0, 2)
      Objet1.List(n, 3) = C.Offset(0, 3)
      Objet1.List(n, 4) = C.Offset(0, 4)
      Objet1.List(n, 5) = C.Offset(0, 5)
      Objet1.List(n, 6) = C.Offset(0, 6)
      Objet1.List(n, 7) = C.Offset(0, 7)
      Objet1.List(n, 8) = C.Offset(0, 8)
      n = n + 1
   End If
   Set C = .FindNext(C)
   Loop While Not C Is Nothing And C.Address <> Adresse
   End If
End With
End Sub