Par macro je pense que ceci devrait gazer.. Par contre tu vas devoir laisser ton ordinateur
Par contre, 46 * 25 * 216 * 493 = 122461200 pas de boucle... Cela devrait prendre un petit moment.
Sub toto()
Dim i As Long, k As Long
Dim j As Integer, l As Integer
Application.ScreenUpdating = False
With Sheets("Feuil2")
.Range("C5:XFD1048576").ClearContents
For i = 5 To .Range("B" & .Rows.Count).End(xlUp).Row
For j = 3 To .Cells(4, .Columns.Count).End(xlToLeft).Column
For k = 6 To Sheets("Feuil1").Range("A" & .Rows.Count).End(xlUp).Row
For l = 2 To Sheets("Feuil1").Cells(5, .Columns.Count).End(xlToLeft).Column
If Sheets("Feuil1").Cells(k, l) <> "" Then
If Month(.Cells(4, j)) = Month(Sheets("Feuil1").Cells(5, l)) And Year(.Cells(4, j)) = Year(Sheets("Feuil1").Cells(5, l)) And Month(.Cells(i, 2)) = Month(Sheets("Feuil1").Cells(k, 1)) And Year(.Cells(i, 2)) = Year(Sheets("Feuil1").Cells(k, 1)) Then
.Cells(i, j) = .Cells(i, j) + Sheets("Feuil1").Cells(k, l)
End If
End If
Next l
Next k
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub
Edit: envoi moi les photos des vaches rousses, j'ai une petite envie de femme potelée en ce moment