Private Sub Worksheet_Activate()
Dim P As Range, t, i&, j As Byte
Set P = [B3:BA100] 'à adapter
t = P 'matrice, plus rapide
'---remplissage du tableau---
With Feuil1 'CodeName de la feuille source
For i = 1 To UBound(t)
For j = 1 To 52
t(i, j) = Application.SumIf(.Columns(1), P(i, 0), .Columns(j + 1))
Next
Next
End With
'---restitution---
P = t
End Sub