Sub Macro1()
Dim Rng As Range
Set Rng = Feuil1.UsedRange
Set Rng = Rng.Offset(1).Resize(Rng.Rows.Count - 1, 8)
With Rng.Columns(8): .Formula = "=ROW()-1": .Value = .Value: End With
With Feuil1.Sort
.SortFields.Clear
.SortFields.Add2 Key:=Rng.Columns(5), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add2 Key:=Rng.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Rng: .Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
.Apply: End With
With Rng.Columns(7): .FormulaR1C1 = "=IF(R[1]C5=RC5,R[1]C1-RC1,"""")": .Value = .Value: End With
Rng(1, 6).Value = "": Rng(2, 6).Resize(Rng.Rows.Count - 1).Value = Rng.Columns(7).Value
With Feuil1.Sort
.SortFields.Clear
.SortFields.Add2 Key:=Rng.Columns(8), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Rng: .Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
.Apply: End With
Rng.Columns(8).ClearContents
End Sub