Bonjour,
En complétant ta proc. classement (j'ai simplifié le tri par la même occasion )
Sub classement()
Dim d As Object, k, i%
With Worksheets("Classement")
.Sort.SortFields.Clear
.Sort.SortFields.Add .Range("G2:G151"), xlSortOnValues, xlDescending
.Sort.SortFields.Add .Range("H2:H151"), xlSortOnValues, xlDescending
.Sort.SortFields.Add .Range("I2:I151"), xlSortOnValues, xlDescending
.Sort.SetRange .Range("A1:I151")
With .Sort
.Header = xlYes
.Apply
End With
Set d = CreateObject("Scripting.Dictionary")
For i = 2 To 151
k = .Cells(i, 6)
If Not d.exists(k) Then d(k) = Array(.Cells(i, 2), .Cells(i, 3))
Next i
With .Range("M8:N21")
For i = 1 To .Rows.Count
k = Trim(Right(.Cells(i, 0), 2))
If d.exists(k) Then .Rows(i).Value = d(k)
Next i
End With
End With
End Sub
Note que ton tri est en contradiction avec ton post initial sur le nombre de poissons. Si c'est dans le tri que tu t'es trompé, tu pourras le rectifier, mais dans le cas d'un tri ascendant sur la colonne, les cellules vides en nombre de poissons iront à la fin quand même, pour les faire passer devant, il faut la valeur 0)...
Je suppose aussi qu'ayant fait ton tri, tu as abandonné les points...
Cordialement.