Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig As Variant
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
With [Tableau1].ListObject.Range 'tableau structuré
    derlig = Application.Match([9^9], .Columns(1).EntireColumn)
    If IsNumeric(derlig) Then Rows(derlig + 1 & ":" & Rows.Count).Delete 'RAZ
    .Columns(14).Insert xlToRight 'colonne auxiliaire
    .Columns(14) = "=N(RC[-3]<>""Put"")"
    .Columns(14) = .Columns(14).Value 'supprime les formules
    If Application.Sum(.Columns(14)) = 0 Then _
        .Sort .Columns(12), xlDescending, Header:=xlYes: GoTo 1 'tri sur colonne L
    .Columns(14) = "=N(RC[-3]<>""Call"")"
    .Columns(14) = .Columns(14).Value 'supprime les formules
    If Application.Sum(.Columns(14)) = 0 Then _
        .Sort .Columns(12), xlAscending, Header:=xlYes: GoTo 1 'tri sur colonne L
    .Columns(14) = "=N(RC[-3]<>""Date"")"
    .Columns(14) = .Columns(14).Value 'supprime les formules
    If Application.Sum(.Columns(14)) = 0 Then _
        .Sort .Columns(13), xlDescending, Header:=xlYes: GoTo 1 'tri sur colonne M
    .Sort .Columns(10), xlDescending, Header:=xlYes 'tri sur colonne J
1   .Columns(14).Delete xlToLeft
End With
Application.EnableEvents = True 'réactive les évènements
End Sub