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