Sub ValN()
Dim WSh As Worksheet, Dc As Object, Rg As Range, CellRang As Range
Set WSh = Feuil1
Set CellRang = WSh.[AB1]
Set Rg = WSh.[A1].CurrentRegion
Set Rg = Rg.Offset(1, 1).Resize(Rg.Rows.Count - 1, Rg.Columns.Count - 1)
tb = Rg
Set Dc = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(tb, 1): For j = 1 To UBound(tb, 2): Dc(tb(i, j)) = CDbl("0" & tb(i, j)): Next j: Next i
tb = Dc.items
Call tri(tb, 0, UBound(tb))
CellRang.Offset(0, 2).Value = "(>=" & tb(CellRang) & ")"
Rg.FormatConditions.Delete
With Rg.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="=" & tb(CellRang))
.Font.Bold = True
.Interior.Color = 13408767
End With
End Sub
Sub tri(a, gauc, droi) ' Quick sort de J. Boisgontier adapté
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) > ref: g = g + 1: Loop
Do While ref > a(d): d = d - 1: Loop
If g <= d Then
Temp = a(g): a(g) = a(d): a(d) = Temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub