Voici la partie du code concerné
For i = 1 To 50
Sheets("Report").Select
Range("D3:O100").Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Data").Select
If Application.CountA(Range("A:A")) = 0 Then Exit Sub
Range("A1:A300").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
'1ère ligne où commence les données
i = 1
premiereligne = i
'tu définies que la dernière ligne à chercher commence à la ligne suivante
derniereligne = i + 1
'tu boucle tant que les 2 valeurs sont égales
Do While Range("D" & derniereligne) = Range("D" & premiereligne)
'en incrémentant à chaque passage la ligne
derniereligne = derniereligne + 1