Sie löschen Ihren gesamten ursprünglichen Bereich. Wenn es sich überlappt, werden auch überlappende Zellen gelöscht. Um dies zu vermeiden, überprüfen Sie jede Zelle, um zu sehen, ob es eine Überlappung, zB kann man ersetzen Range(COPYSOURCE).ClearContents
durch
Dim rgLoop As Range, rgToDelete As Range For Each rgLoop In Range(copysource).Cells If Intersect(rgLoop, Range(pasterange).Resize(Range(copysource).Rows.Count, Range(copysource).Columns.Count)) Is Nothing Then If rgToDelete Is Nothing Then Set rgToDelete = rgLoop Else Set rgToDelete = Union(rgToDelete, rgLoop) End If Next rgLoop rgToDelete.ClearContents 'deletes contents keeps formatting