Sub Plani()
Dim TDon(), RngPlan As Range, DtDéb As Date, DtFin As Date, TPlan(), L As Long, Dt As Date
TDon = ActiveSheet.[A2].Resize(ActiveSheet.[A1000000].End(xlUp).Row - 1, 4).Value
Set RngPlan = ActiveSheet.[G3].Resize(UBound(TDon, 1), ActiveSheet.[AN2].End(xlToLeft).Column - 6)
DtDéb = RngPlan(0, 2).Value
RngPlan(0, 3).Resize(1, RngPlan.Columns.Count - 2).FormulaR1C1 = "=RC[-1]+1"
DtFin = RngPlan(0, RngPlan.Columns.Count).Value
ReDim TPlan(1 To UBound(TDon, 1), 1 To DtFin - DtDéb + 2)
For L = 1 To UBound(TDon, 1)
TPlan(L, 1) = TDon(L, 1)
For Dt = Int(TDon(L, 3)) To Int(TDon(L, 4))
If Dt > DtFin Then Exit For
If Dt >= DtDéb Then TPlan(L, Dt - DtDéb + 2) = TDon(L, 2)
Next Dt, L
ActiveSheet.[G3].Resize(UBound(TPlan, 1), UBound(TPlan, 2)).Value = TPlan
End Sub