Dim RngConstants As Range
Dim RngFormulas As Range
Dim Rng As Range
On Error Resume Next
Set RngConstants = .Range("F16:U" & .Rows.Count).SpecialCells(xlCellTypeConstants, 1)
Set RngFormulas = .Range("F16:U" & .Rows.Count).SpecialCells(xlCellTypeFormulas, 1)
On Error GoTo 0
Select Case True
Case RngConstants Is Nothing And RngFormulas Is Nothing
Set Rng = Nothing
Case RngConstants Is Nothing
Set Rng = RngFormulas
Case RngFormulas Is Nothing
Set Rng = RngConstants
Case Else
Set Rng = Union(RngConstants, RngFormulas)
End Select
If Not Rng Is Nothing Then
For Each c In Rng.Cells
i = c.Row: j = c.Column
x = .Cells(i, 3) & .Cells(i, 2) & .Cells(9, j) & c
If d.exists(x) Then
d.Remove x 'retire de la liste
ElseIf c > limite Then
resu(n, 0) = .Cells(i, 3): resu(n, 1) = .Cells(i, 2)
resu(n, 2) = .Cells(9, j): resu(n, 3) = c
n = n + 1
End If
Next c
End If