Sub Test()
Dim i&, J&, L&
Dim TReport As Variant, TData As Variant, TAlea As Variant
Dim RngAlea As Range
L = 1
With Sheets("SOURCE")
TData = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(3).Offset(, 8))
Set RngAlea = .Range(.Cells(2, 11), .Cells(2, .Columns.Count).End(1).Offset(UBound(TData, 1), 0))
End With
TAlea = RngAlea
nbLigne = Application.CountA(RngAlea)
ReDim TReport(1 To nbLigne, 1 To (UBound(TData, 2) + 2))
For J = 1 To UBound(TData, 2)
TReport(1, J) = TData(1, J)
Next J
TReport(1, UBound(TData, 2) + 1) = "Titre"
TReport(1, UBound(TData, 2) + 2) = "Titre2"
For i = 2 To UBound(TData, 1)
For J = 1 To UBound(TAlea, 2)
If TAlea(i, J) <> "" Then
L = L + 1
For k = 1 To UBound(TData, 2)
TReport(L, k) = TData(i, k)
Next k
TReport(L, k) = TAlea(1, J)
TReport(L, k + 1) = TAlea(i, J)
End If
Next J
Next i
With Sheets("CIBLE")
.Cells(3, 1).CurrentRegion.ClearContents
.Cells(3, 1).Resize(UBound(TReport, 1), UBound(TReport, 2)) = TReport
.Activate
End With
End Sub