Sub Combin()
Dim DicCol As New Dictionary, DicLig As New Dictionary, CléLig As String, TE(), LE&, TS(), L&, C&
TE = Feuil3.[C1:AJ1].Value
For C = 1 To UBound(TE, 2): DicCol(TE(1, C)) = C: Next C
TE = Feuil3.[A2:B2].Resize(Feuil3.[A1000000].End(xlUp).Row - 1).Value
For L = 1 To UBound(TE, 1): CléLig = TE(L, 1) & "|" & TE(L, 2): DicLig(CléLig) = L: Next L
ReDim TS(1 To L - 1, 1 To C - 1)
TE = Feuil1.UsedRange.Value
For LE = 2 To UBound(TE, 1)
CléLig = TE(LE, 2) & "|" & TE(LE, 3)
If DicCol.Exists(TE(LE, 1)) And DicLig.Exists(CléLig) Then
C = DicCol(TE(LE, 1)): L = DicLig(CléLig)
TS(L, C) = TE(LE, 4): End If: Next LE
Feuil3.[C2].Resize(UBound(TS, 1), UBound(TS, 2)).Value = TS
End Sub