[FONT=Fixedsys]Option Explicit[/FONT]
[FONT=Fixedsys]Public Sub AllCombinations()[/FONT]
[FONT=Fixedsys] Dim ws As Worksheet[/FONT]
[FONT=Fixedsys] Dim aPtr As Long[/FONT]
[FONT=Fixedsys] Dim bPtr As Long[/FONT]
[FONT=Fixedsys] Dim cPtr As Long[/FONT]
[FONT=Fixedsys] Dim iOut As Long[/FONT]
[FONT=Fixedsys] Set ws = ThisWorkbook.Sheets(1)[/FONT]
[FONT=Fixedsys] ws.Columns("D").ClearContents[/FONT]
[FONT=Fixedsys] iOut = 1[/FONT]
[FONT=Fixedsys] For aPtr = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row[/FONT]
[FONT=Fixedsys] For bPtr = 2 To ws.Cells(ws.Rows.Count, "B").End(xlUp).Row[/FONT]
[FONT=Fixedsys] For cPtr = 2 To ws.Cells(ws.Rows.Count, "C").End(xlUp).Row[/FONT]
[FONT=Fixedsys] iOut = iOut + 1[/FONT]
[FONT=Fixedsys] ws.Cells(iOut, "D") = ws.Cells(aPtr, "A") & ", " _[/FONT]
[FONT=Fixedsys] & ws.Cells(bPtr, "B") & ", " _[/FONT]
[FONT=Fixedsys] & ws.Cells(cPtr, "C")[/FONT]
[FONT=Fixedsys] Next cPtr[/FONT]
[FONT=Fixedsys] Next bPtr[/FONT]
[FONT=Fixedsys] Next aPtr[/FONT]
[FONT=Fixedsys] MsgBox Format(iOut - 1, "#,###") & " combinations generated" & Space(10), _[/FONT]
[FONT=Fixedsys] vbOKOnly + vbInformation[/FONT]
[FONT=Fixedsys]End Sub[/FONT]