Sub Demo()
Const FM = "IF(F#:AI#>0,F#:AI#*E#)", FP = "IF(F#:AI#>0,F1:AI1)"
Application.ScreenUpdating = False
Feuil2.UsedRange.Clear
Feuil2.Cells(6).Value = "Pays"
With Feuil1.Cells(1).CurrentRegion.Rows
Feuil2.[A1:E1].Value = .Range("A1:E1").Value
Feuil2.[G1:X1].Value = .Range("AJ1:BA1").Value
R& = 2
For L& = 2 To .Count
VA = Filter(.Parent.Evaluate(Replace(FM, "#", L)), False, False)
N& = UBound(VA) + 1
Feuil2.Cells(R, 1).Resize(N, 4).Value = .Item(L).Range("A1:D1").Value
Feuil2.Cells(R, 5).Resize(N, 2).FormulaLocal = Application.Transpose(Array(VA, _
Filter(.Parent.Evaluate(Replace(FP, "#", L)), False, False)))
Feuil2.Cells(R, 7).Resize(N, 18).Value = .Item(L).Range("AJ1:BA1").Value
R = R + N
Next
End With
Application.Goto Feuil2.Cells(1), True
Application.ScreenUpdating = True
End Sub