Ah oui vous avez raison j'avais appliqué une logique un peu "débile" qui faisait "tant que la valeur au dessus est identique, supprimer les données". La correction ci-dessous traite votre tableau en "blocs de cellules fusionnées", ce qui devrait correspondre davantage à votre demande.
Public Sub CopierVersFeuille()
Dim data As Variant
With ThisWorkbook.Worksheets("AMLCEMReport").Range("A8").CurrentRegion
data = .Value
.Copy
End With
Dim i As Long, j As Long
Dim lastVals(3 To 5) As String
' rows
For i = LBound(data, 1) + 2 To UBound(data, 1)
' reading column C value to check for duplicates
If StrComp(lastVals(LBound(lastVals)), CStr(data(i, LBound(lastVals))), vbTextCompare) = 0 Then
' cell is the same as last saved one => we replace columns C,D,E (=3,4,5)
For j = LBound(lastVals) To UBound(lastVals)
data(i, j) = vbNullString
Next j
Else
' cell is different, saving new last cells
For j = LBound(lastVals) To UBound(lastVals)
lastVals(j) = data(i, j)
Next j
End If
Next i
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets.Add().Range("A8")
' past all with formats
.PasteSpecial xlPasteAll
Application.DisplayAlerts = False
' columns widths
.PasteSpecial xlPasteColumnWidths
Application.DisplayAlerts = True
Application.CutCopyMode = False
' unmerge
Dim cellX As Range
For Each cellX In .CurrentRegion
If cellX.MergeCells Then cellX.UnMerge
Next cellX
' cleaned data
.CurrentRegion.Value = data
End With
Application.ScreenUpdating = True
End Sub