Re,
Il y a des choses qui ne peuvent pas se deviner.
C'est la raison pour laquelle on demande des exemples '
REPRESENTATIFS' de la réalité tant que faire se peut
J'ai utilisé .CurrentRegion
(équivalent de vba pour CTRL+* sur une feuille de calcul) parce que le tableau de votre exemple était un tableau au sens stricte d'excel. A savoir une zone de cellules contigües entourée de lignes et colonnes vides. Ce n'est pas le cas dans votre dernier fichier. Qui plus est semblait non limité en lignes.
Faites CTRL+* sur D51 vous verrez la plage retournée par currentregion.
Votre plage source est fixe : référencez là de manière fixe :
Centres = .Sheets("Contrat Source").Range("D51:E59").Value
Et comme vous aurez des...