Option Explicit
Sub Man()
Const InTabAdd = "A2"
Const AssParTab = "F2"
Dim I1 As Integer, I2 As Integer
Dim Rg1 As Range, Rg2 As Range, Rg3 As Range, Rg4 As Range
Dim R3 As Range, R4 As Range
Set Rg1 = Range(Cells(3, "A"), Cells(3, "A").End(xlDown))
Set Rg2 = Range(Cells(3, "F"), Cells(3, "F").End(xlDown))
Set Rg3 = Range(Cells(3, "G"), Cells(3, "G").End(xlDown))
Set Rg4 = Range(Cells(3, "H"), Cells(3, "H").End(xlDown))
Dim II As Integer
Dim InRg As Range
Dim LR As Integer, LC As Integer
Dim Price As Single
Dim OutWs As Worksheet
Set OutWs = Sheets("Output")
Dim id As String
LC = Range(InTabAdd).End(xlToRight).Column
LR = Range(InTabAdd).End(xlDown).Row
Set InRg = Range(Range(InTabAdd), Cells(LR, LC))
II = 1
With OutWs
.Cells.ClearContents
.Cells(II, 1).Resize(1, 6) = Array(Rg1(0, 1), Rg2(0, 1), Rg3(0, 1), Rg4(0, 1), "Price", "id"): II = II + 1
For I1 = 1 To Rg1.Rows.Count
For I2 = 1 To Rg2.Rows.Count
For Each R3 In Rg3
For Each R4 In Rg4
Price = Application.Index(InRg, I1 + 1, I2 + 1)
id = "#" & Format(II - 1, "0000")
.Cells(II, 1).Resize(1, 6) = Array(Rg1.Cells(I1, 1), Rg2.Cells(I2, 1), R3, R4, Price, id): II = II + 1
Next R4
Next R3
Next I2
Next I1
End With
End Sub
Bookmarks