J'avais aussi essayé avec le "i" à la place du "4" mais ça ne marche pas non plus :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Nom, LO, Isect As Range, sHeader, i, i1, temp
Set LO = Me.Range("tabel1").ListObject
If Target.CountLarge > 1 Then Exit Sub
Set Isect = Intersect(Me.Range("tabel1"), Target)
If Target.Address = Me.Range("Filtre_Nom").Address And Len(Target.Value) > 0 Then
Me.Unprotect MdP
LO.Range.AutoFilter
Nom = Target.Value
If Application.WorksheetFunction.CountIf(Range("tabel1[nom]"), Nom & "*") > 0 Then
i = LO.ListColumns("Nom").Index 'position colonne "Nom" **************
LO.Range.AutoFilter i, Nom & "*" 'utiliser cette position pour le filtre
Application.Goto LO.DataBodyRange.SpecialCells(xlVisible)(1), 1
Else
With LO
LO.Parent.Unprotect MdP
Application.EnableEvents = False
If .ListRows.Count >= 2 Then
.ListRows.Add 2
.ListRows(1).Range.Copy .ListRows(2).Range
On Error Resume Next
With .ListRows(1).Range
.SpecialCells(xlConstants).ClearContents
.Cells(1, "C") = UCase(Nom)
End With
End If
Application.EnableEvents = True
Proteger
End With
End If
Proteger
ElseIf Not Isect Is Nothing Then