Sub ProduitCartesien()
Dim i As Long, j As Long
Dim Li As Long, Lj As Long, Ci As Long
With Sheets("Sheet1")
Li = .Range("A1").CurrentRegion.Rows.Count
Ci = .Range("A1").CurrentRegion.Columns.Count
End With
With Sheets("Sheet2")
Lj = .Range("A1").CurrentRegion.Rows.Count
End With
With Sheets("Sheet3")
.Cells.ClearContents
For j = 1 To Lj
For i = 1 To Li
.Cells(Li * (j - 1) + i, 1).Value = Sheets("sheet2").Cells(j, 1).Value
.Cells(Li * (j - 1) + i, 2).Resize(1, Ci).Value = Sheets("sheet1").Cells(i, 1).Resize(1, Ci).Value
Next i
Next j
End With
End Sub