Forum Discussion
yugal40
Nov 19, 2021Brass Contributor
permutation and combination
Hi Folks, Hope you all are doing great! i have numbers in the column a, Now i want to calculate all the permutation and combination of all the pair of 3 cells cells and there should be no repetit...
- Nov 20, 2021
Change the Test macro as follows; the rest can remain the same:
Sub Test() Dim Num As Long Dim r As Long Dim LastRow As Long Num = Application.InputBox(Prompt:="How many items in each combination?", Default:=3, Type:=1) If Num < 2 Then Beep Exit Sub End If Application.ScreenUpdating = False LastRow = Range("A" & Rows.count).End(xlUp).Row ReDim myArray(1 To LastRow) For r = 1 To LastRow myArray(r) = Range("A" & r).Value Next r Call CombosNoRep(myArray, Num) Application.ScreenUpdating = True End Sub
HansVogelaar
Nov 19, 2021MVP
See the attached version. You'll have to allow macros.
yugal40
Nov 20, 2021Brass Contributor
I really appreciate your understanding of macros!
Really thanks for your reply, It worked for me.
Just one more thing can we give an input instead of hard coding 3 as a number?
It will make my task more easier
Thanks again,
Have a great day.
Really thanks for your reply, It worked for me.
Just one more thing can we give an input instead of hard coding 3 as a number?
It will make my task more easier
Thanks again,
Have a great day.
- HansVogelaarNov 20, 2021MVP
Change the Test macro as follows; the rest can remain the same:
Sub Test() Dim Num As Long Dim r As Long Dim LastRow As Long Num = Application.InputBox(Prompt:="How many items in each combination?", Default:=3, Type:=1) If Num < 2 Then Beep Exit Sub End If Application.ScreenUpdating = False LastRow = Range("A" & Rows.count).End(xlUp).Row ReDim myArray(1 To LastRow) For r = 1 To LastRow myArray(r) = Range("A" & r).Value Next r Call CombosNoRep(myArray, Num) Application.ScreenUpdating = True End Sub