Sub Macro1()
Dim pc As Range 'déclare la variable pc (Plage en Colonne)
Dim pl As Range 'déclare la variable pl (Plage en Ligne)
Dim cel1 As Range 'déclare la variable cel1 (CELlule1)
Dim cel2 As Range 'déclare la variable cel2 (CELlule2)
Dim r As Range 'déclare la variable r (Recherche)
With Sheets("synthèse") 'prend en compte l'onglet "synthèse"
Set pc = .Range("A2:A" & .Range("A65536").End(xlUp).Row) 'définit la plage en colonne pc
Set pl = .Range("B1:" & .Range("IV1").End(xlToLeft).Address(0, 0)) 'définit la plage en ligne pl
End With 'fin de la prise en compte de l'onglet "synthèse"
For Each cel1 In pc 'boucle 1 : sur toutes les cellules éditées cel1 de la plage pc
For Each cel2 In pl 'boucle 2 : sur toutes les cellules éditées cel2 de la plage pl
'définit la recherche (recherche la valeur de cel1 dans la colonne 1 de l'onglet du même nom que la valeur de cel2)
Set r = Sheets(cel2.Value).Columns(1).Find(cel1.Value, , xlValues, xlWhole)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
'place dans l'intersection la somme de la colonne C de l'occurrence trouvée
Sheets("synthèse").Cells(cel1.Row, cel2.Column).Value = r.Offset(0, 2).Value
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next cel2 'prochaine cellule de la boucle 2
Next cel1 'prochaine cellule de la boucle 1
End Sub