Private Sub Classement(col%)
Dim c As Range, i&, Nmoins&, Nplus&
Application.ScreenUpdating = False
For Each c In Intersect([B:B], Me.UsedRange.EntireRow)
If c = "N°" Then
c.Resize(21, 5).Copy c(1, 11)
c.Resize(, 5).Copy c(22, 11) '2ème ligne de titres
With c(1, 11).Resize(22, 5)
For i = 2 To 21
If .Cells(i, col) = 0 Then .Rows(i) = "": .Rows(i).Interior.ColorIndex = xlNone
Next
.Sort .Columns(col), xlAscending, Header:=xlYes '1er tri
Nmoins = Application.CountIf(.Columns(col), "<0")
Nplus = Application.CountIf(.Columns(col), ">0")
i = Nmoins + 2
.Rows(i).Resize(23 - i).Sort .Columns(col), xlDescending, Header:=xlNo '2ème tri
'---colonnes H I J---
c(0, 7).Resize(2, 3) = IIf(col = 2, [{"O","V","E";"V N","","VP"}], [{"D","E","R";"DN","","DP"}])
c(2, 7).Resize(2, 3) = "" 'RAZ
If Nmoins Then
i = IIf(col = 2, 1 + Nmoins, 2)
c(2, 7) = .Cells(i, 1)
c(3, 7) = .Cells(i, col)
End If
If Nplus Then
i = IIf(col = 2, 2 + Nmoins + Nplus, 3 + Nmoins)
c(2, 9) = .Cells(i, 1)
c(3, 9) = .Cells(i, col)
End If
End With
End If
Next
End Sub