Here is the code for macro.
Maindata=A3:d8
ClmData=H2:K7
Ranges can be changed.
In both the ranges rows can be increased Columns cannot be increased. If columns are to be increased code should be edited.
Sub RepeatData()
Dim MainData As Range, ClmData As Range
Dim T As Long, w As Long, x As Long, y As Long, z As Long, Ros As Long
Dim M, N
With Sheets("Sheet1")
Set MainData = .Range("A3:D8")
Set ClmData = .Range("H2:K7")
End With
M = MainData
N = ClmData
Ros = MainData.Rows.Count
ReDim ClCount(1 To ClmData.Columns.Count) 'K = M(1, 1)
For T = 1 To ClmData.Columns.Count
ClCount(T) = Application.CountA(Application.Index(ClmData, , T))
Next T
With Sheets("sheet2")
.Columns("A:H").ClearContents
.Range("A1:H1") = Array("Country", "Product Code", "Sub product Code", "Commission%", "Status", "Priority", "Risk", "Test") '"Status", "Priority", "Risk"
For w = 2 To ClCount(1)
For x = 2 To ClCount(2)
For y = 2 To ClCount(3)
For z = 2 To ClCount(4)
.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Resize(Ros, 4) = M
.Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Resize(Ros) = N(w, 1)
.Range("F" & Rows.Count).End(xlUp).Offset(1, 0).Resize(Ros) = N(x, 2)
.Range("G" & Rows.Count).End(xlUp).Offset(1, 0).Resize(Ros) = N(y, 3)
.Range("H" & Rows.Count).End(xlUp).Offset(1, 0).Resize(Ros) = N(z, 4)
Next
Next
Next
Next
End With
End Sub
Bookmarks