Private Sub Worksheet_Activate()
Dim tablo, cc%, resu(), i&, j%
Application.ScreenUpdating = False
[A2].Resize(Rows.Count - 1, Columns.Count).ClearContents 'RAZ
With Feuil1.[A1].CurrentRegion
If .Columns.Count = 1 Or .Rows.Count = 1 Then Exit Sub
[A2] = 1
With .Cells(1, 2).Resize(.Rows.Count, .Columns.Count - 1)
[A2].Resize(.Columns.Count).DataSeries 'numérotation (classement)
[B2].Resize(.Columns.Count, .Rows.Count) = Application.Transpose(.Cells)
With [C2].Resize(.Columns.Count, .Rows.Count - 1)
tablo = .Value 'matrice, plus rapide
cc = .Columns.Count
ReDim resu(1 To .Rows.Count, 1 To cc)
For i = 1 To .Rows.Count
resu(i, 1) = tablo(i, 1)
For j = 2 To cc
resu(i, j) = tablo(i, j) - tablo(i, j - 1)
If resu(i, j) = 0 Then resu(i, j) = ""
Next j, i
.Value = resu 'restitution
End With
[B2].Offset(, .Rows.Count).Resize(.Columns.Count) = "=IF(SUM(RC3:RC[-1]),SUM(RC3:RC[-1]),"""")"
[B2].Resize(.Columns.Count, .Rows.Count + 1).Sort [B2].Offset(, .Rows.Count), xlAscending, Header:=xlNo
End With
End With
End Sub