Sub Test()
Dim t() As Variant
f = Range("a65536").End(xlUp).Row
' Tableau en mémoire :
t = Range(Cells(133, 1), Cells(f, 2))
' Suppresion de la zone (toutes les données qui sont en mémoire)
Range(Cells(133, 1), Cells(f, 2)).Clear
' Redimension du tabeau pour les clefs (colone en mémoire 3 = concatenantion et 4 = Nombre 1 si doublon)
ReDim Preserve t(1 To UBound(t), 1 To 4)
For i = 1 To UBound(t, 1)
t(i, 3) = t(i, 1) & t(i, 2)
x = i + 1
For j = x To UBound(t, 1)
t(j, 3) = t(j, 1) & t(j, 2)
If t(i, 3) = t(j, 3) Then
t(j, 4) = t(j, 4) + 1
End If
Next j
Next i
' Tableau 2 ou seront stoker les données en mémoire (avec les meme dimension que le tableau supprimer)
Dim t2() As Variant
ReDim t2(1 To UBound(t), 1 To 2)
cpt = 1
For i = 1 To UBound(t, 1)
If t(i, 4) = Empty Then ' Si la colonne 4 du premier tableau "t" est vide la ligne est unique
t2(cpt, 1) = t(i, 1) ' transfert des cases d'un tableau a l'autre ici case 1 de la ligne i dans le tableau mémoire
t2(cpt, 2) = t(i, 2) ' transfert des cases d'un tableau a l'autre ici case 2 de la ligne i dans le tableau mémoire
cpt = cpt + 1 ' ici compteur pour remplir le nouveau tableau "t2"
End If
Next i
' ici reconstituer le tableau sans doublon = colle le tableau 2 "t2" a l'endroit de celui supprimer
Cells(133, 1).Resize(UBound(t2, 1), UBound(t2, 2)) = t2
End Sub