Sub Tri()
Dim NbLig&, tablo, ub&, i%, n#, j&
Application.ScreenUpdating = False
NbLig = Range("G" & Rows.Count).End(xlUp).Row
Columns("H").Insert
With Range("H3:H" & NbLig)
.Formula = "=RAND()"
tablo = .Value
ub = UBound(tablo)
End With
For i = 1 To 2 * [K4] - 1 Step 2 'J4 est décalé...
n = Application.Small(tablo, i)
For j = 1 To ub
If tablo(j, 1) >= n Then tablo(j, 1) = tablo(j, 1) + 1
Next
tablo(i, 1) = n
Next
[H3].Resize(ub) = tablo
Range("F3:H" & NbLig).Sort [H3], xlAscending, Header:=xlNo
Columns("H").Delete
End Sub