Si tu peux (et sais) coller la macro sur ton fichier, la voici :
Sub SupprimerLesDoublons()
tablo = Range("A2").CurrentRegion.Offset(1)
Set dico = CreateObject("Scripting.Dictionary")
For i = 2 To UBound(tablo, 1)
If tablo(i, 1) = "BASE ANC" Then
dico(tablo(i, 17) & "-" & tablo(i, 21)) = i
End If
Next i
For i = 2 To UBound(tablo, 1)
If dico.exists(tablo(i, 17) & "-" & tablo(i, 21)) _
And tablo(i, 1) = "BASE SUP" Then
nomDico = tablo(i, 17) & "-" & tablo(i, 21)
ln = dico(nomDico)
For j = 2 To UBound(tablo, 2)
If tablo(i, j) <> "" And tablo(ln, j) = "" Then
Cells(ln + 1, j) = Cells(i + 1, j)
End If
Next j
Range("A" & i + 1 & ":BD" & i + 1).ClearContents
End If
Next i
nbLn = UBound(tablo, 1)
Erase tablo
tablo = Range("A2:BD" & nbLn)
k = 0
For i = 2 To UBound(tablo, 1)
If tablo(i, 1) <> "" Then
ReDim Preserve tabloR(1 To UBound(tablo, 2), 1 To k + 1)
For j = 1 To UBound(tablo, 2)
tabloR(j, k + 1) = tablo(i, j)
Next j
k = k + 1
End If
Next i
Range("A3:BD" & nbLn).ClearContents
Range("A3").Resize(UBound(tabloR, 2), UBound(tabloR, 1)) = Application.Transpose(tabloR)
End Sub
Bye !