Hi Everyone,
The Macro is Called "List_ALL_Triples" and will Calculate & List the Total Number of Times EACH Triple has Been Drawn Excluding AND Including the Bonus Number for a 649 Lotto.
Setup
In a Sheet Named "No Bonus", Enter Titles Starting in "A1" Such as :-
A1 = Draw
B1 = Ball 1
C1 = Ball 2
D1 = Ball 3
E1 = Ball 4
F1 = Ball 5
G1 = Ball 6
H1 = Bonus
Then Enter ALL the Results ( As Per Above ) for the 649 Lotto Starting in Cell "A2".
In a Sheet Named "Bonus", Enter Titles Starting in "A1" Such as :-
A1 = Draw
B1 = Ball 1
C1 = Ball 2
D1 = Ball 3
E1 = Ball 4
F1 = Ball 5
G1 = Ball 6
H1 = Ball 7
Then Enter the Following Formulas Starting in Cell "A2" :-
A2 Formula :-
=IF('No Bonus'!$A2=0," ",'No Bonus'!$A2)
B2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,1))
C2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,2))
D2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,3))
E2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,4))
F2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,5))
G2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,6))
H2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,7))
Copy ALL of these Formulas Down to Say Fifty Or So Draws Past the Current Draw so as to Allow for Future Draw Information.
An Empty Sheet Named "Results" MUST Also be Available. After the Macro has Finished Running, the First Three Columns ( A, B and C ) will Contain the Combinations of ALL 18,424 Triples, Column D will Contain the Total Number of Times EXCLUDING the Bonus Number EACH of these Triples has Been Draw, and Column E will Contain the Total Number of Times INCLUDING the Bonus Number EACH of these Triples has Been Draw. You can then Sort on Either Excluding OR Including the Bonus Number.
Here is the Macro ( Just Copy & Paste into a Standard Module ) :-
Have Fun!.
All the Best.
PAB
The Macro is Called "List_ALL_Triples" and will Calculate & List the Total Number of Times EACH Triple has Been Drawn Excluding AND Including the Bonus Number for a 649 Lotto.
Setup
In a Sheet Named "No Bonus", Enter Titles Starting in "A1" Such as :-
A1 = Draw
B1 = Ball 1
C1 = Ball 2
D1 = Ball 3
E1 = Ball 4
F1 = Ball 5
G1 = Ball 6
H1 = Bonus
Then Enter ALL the Results ( As Per Above ) for the 649 Lotto Starting in Cell "A2".
In a Sheet Named "Bonus", Enter Titles Starting in "A1" Such as :-
A1 = Draw
B1 = Ball 1
C1 = Ball 2
D1 = Ball 3
E1 = Ball 4
F1 = Ball 5
G1 = Ball 6
H1 = Ball 7
Then Enter the Following Formulas Starting in Cell "A2" :-
A2 Formula :-
=IF('No Bonus'!$A2=0," ",'No Bonus'!$A2)
B2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,1))
C2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,2))
D2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,3))
E2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,4))
F2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,5))
G2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,6))
H2 Formula :-
=IF('No Bonus'!$B2:$H2=0," ",SMALL('No Bonus'!$B2:$H2,7))
Copy ALL of these Formulas Down to Say Fifty Or So Draws Past the Current Draw so as to Allow for Future Draw Information.
An Empty Sheet Named "Results" MUST Also be Available. After the Macro has Finished Running, the First Three Columns ( A, B and C ) will Contain the Combinations of ALL 18,424 Triples, Column D will Contain the Total Number of Times EXCLUDING the Bonus Number EACH of these Triples has Been Draw, and Column E will Contain the Total Number of Times INCLUDING the Bonus Number EACH of these Triples has Been Draw. You can then Sort on Either Excluding OR Including the Bonus Number.
Here is the Macro ( Just Copy & Paste into a Standard Module ) :-
Code:
Option Explicit
Option Base 1
Sub List_ALL_Triples()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim nDraw As Integer
Dim nNo(7) As Integer
Dim nBonus(49, 49, 49) As Integer
Dim nNoBonus(49, 49, 49) As Integer
Application.ScreenUpdating = False
Sheets("No Bonus").Select
Range("A2").Select
Do While ActiveCell.Value > 0
nDraw = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range("A1").Select
For i = 1 To nDraw
For j = 1 To 7
nNo(j) = ActiveCell.Offset(i, j).Value
Next j
nNoBonus(nNo(1), nNo(2), nNo(3)) = nNoBonus(nNo(1), nNo(2), nNo(3)) + 1
nNoBonus(nNo(1), nNo(2), nNo(4)) = nNoBonus(nNo(1), nNo(2), nNo(4)) + 1
nNoBonus(nNo(1), nNo(2), nNo(5)) = nNoBonus(nNo(1), nNo(2), nNo(5)) + 1
nNoBonus(nNo(1), nNo(2), nNo(6)) = nNoBonus(nNo(1), nNo(2), nNo(6)) + 1
nNoBonus(nNo(1), nNo(3), nNo(4)) = nNoBonus(nNo(1), nNo(3), nNo(4)) + 1
nNoBonus(nNo(1), nNo(3), nNo(5)) = nNoBonus(nNo(1), nNo(3), nNo(5)) + 1
nNoBonus(nNo(1), nNo(3), nNo(6)) = nNoBonus(nNo(1), nNo(3), nNo(6)) + 1
nNoBonus(nNo(1), nNo(4), nNo(5)) = nNoBonus(nNo(1), nNo(4), nNo(5)) + 1
nNoBonus(nNo(1), nNo(4), nNo(6)) = nNoBonus(nNo(1), nNo(4), nNo(6)) + 1
nNoBonus(nNo(1), nNo(5), nNo(6)) = nNoBonus(nNo(1), nNo(5), nNo(6)) + 1
nNoBonus(nNo(2), nNo(3), nNo(4)) = nNoBonus(nNo(2), nNo(3), nNo(4)) + 1
nNoBonus(nNo(2), nNo(3), nNo(5)) = nNoBonus(nNo(2), nNo(3), nNo(5)) + 1
nNoBonus(nNo(2), nNo(3), nNo(6)) = nNoBonus(nNo(2), nNo(3), nNo(6)) + 1
nNoBonus(nNo(2), nNo(4), nNo(5)) = nNoBonus(nNo(2), nNo(4), nNo(5)) + 1
nNoBonus(nNo(2), nNo(4), nNo(6)) = nNoBonus(nNo(2), nNo(4), nNo(6)) + 1
nNoBonus(nNo(2), nNo(5), nNo(6)) = nNoBonus(nNo(2), nNo(5), nNo(6)) + 1
nNoBonus(nNo(3), nNo(4), nNo(5)) = nNoBonus(nNo(3), nNo(4), nNo(5)) + 1
nNoBonus(nNo(3), nNo(4), nNo(6)) = nNoBonus(nNo(3), nNo(4), nNo(6)) + 1
nNoBonus(nNo(3), nNo(5), nNo(6)) = nNoBonus(nNo(3), nNo(5), nNo(6)) + 1
nNoBonus(nNo(4), nNo(5), nNo(6)) = nNoBonus(nNo(4), nNo(5), nNo(6)) + 1
Next i
Sheets("Bonus").Select
Range("A2").Select
Do While ActiveCell.Value > " "
nDraw = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop
Range("A1").Select
For i = 1 To nDraw
For j = 1 To 7
nNo(j) = ActiveCell.Offset(i, j).Value
Next j
nBonus(nNo(1), nNo(2), nNo(3)) = nBonus(nNo(1), nNo(2), nNo(3)) + 1
nBonus(nNo(1), nNo(2), nNo(4)) = nBonus(nNo(1), nNo(2), nNo(4)) + 1
nBonus(nNo(1), nNo(2), nNo(5)) = nBonus(nNo(1), nNo(2), nNo(5)) + 1
nBonus(nNo(1), nNo(2), nNo(6)) = nBonus(nNo(1), nNo(2), nNo(6)) + 1
nBonus(nNo(1), nNo(2), nNo(7)) = nBonus(nNo(1), nNo(2), nNo(7)) + 1
nBonus(nNo(1), nNo(3), nNo(4)) = nBonus(nNo(1), nNo(3), nNo(4)) + 1
nBonus(nNo(1), nNo(3), nNo(5)) = nBonus(nNo(1), nNo(3), nNo(5)) + 1
nBonus(nNo(1), nNo(3), nNo(6)) = nBonus(nNo(1), nNo(3), nNo(6)) + 1
nBonus(nNo(1), nNo(3), nNo(7)) = nBonus(nNo(1), nNo(3), nNo(7)) + 1
nBonus(nNo(1), nNo(4), nNo(5)) = nBonus(nNo(1), nNo(4), nNo(5)) + 1
nBonus(nNo(1), nNo(4), nNo(6)) = nBonus(nNo(1), nNo(4), nNo(6)) + 1
nBonus(nNo(1), nNo(4), nNo(7)) = nBonus(nNo(1), nNo(4), nNo(7)) + 1
nBonus(nNo(1), nNo(5), nNo(6)) = nBonus(nNo(1), nNo(5), nNo(6)) + 1
nBonus(nNo(1), nNo(5), nNo(7)) = nBonus(nNo(1), nNo(5), nNo(7)) + 1
nBonus(nNo(1), nNo(6), nNo(7)) = nBonus(nNo(1), nNo(6), nNo(7)) + 1
nBonus(nNo(2), nNo(3), nNo(4)) = nBonus(nNo(2), nNo(3), nNo(4)) + 1
nBonus(nNo(2), nNo(3), nNo(5)) = nBonus(nNo(2), nNo(3), nNo(5)) + 1
nBonus(nNo(2), nNo(3), nNo(6)) = nBonus(nNo(2), nNo(3), nNo(6)) + 1
nBonus(nNo(2), nNo(3), nNo(7)) = nBonus(nNo(2), nNo(3), nNo(7)) + 1
nBonus(nNo(2), nNo(4), nNo(5)) = nBonus(nNo(2), nNo(4), nNo(5)) + 1
nBonus(nNo(2), nNo(4), nNo(6)) = nBonus(nNo(2), nNo(4), nNo(6)) + 1
nBonus(nNo(2), nNo(4), nNo(7)) = nBonus(nNo(2), nNo(4), nNo(7)) + 1
nBonus(nNo(2), nNo(5), nNo(6)) = nBonus(nNo(2), nNo(5), nNo(6)) + 1
nBonus(nNo(2), nNo(5), nNo(7)) = nBonus(nNo(2), nNo(5), nNo(7)) + 1
nBonus(nNo(2), nNo(6), nNo(7)) = nBonus(nNo(2), nNo(6), nNo(7)) + 1
nBonus(nNo(3), nNo(4), nNo(5)) = nBonus(nNo(3), nNo(4), nNo(5)) + 1
nBonus(nNo(3), nNo(4), nNo(6)) = nBonus(nNo(3), nNo(4), nNo(6)) + 1
nBonus(nNo(3), nNo(4), nNo(7)) = nBonus(nNo(3), nNo(4), nNo(7)) + 1
nBonus(nNo(3), nNo(5), nNo(6)) = nBonus(nNo(3), nNo(5), nNo(6)) + 1
nBonus(nNo(3), nNo(5), nNo(7)) = nBonus(nNo(3), nNo(5), nNo(7)) + 1
nBonus(nNo(3), nNo(6), nNo(7)) = nBonus(nNo(3), nNo(6), nNo(7)) + 1
nBonus(nNo(4), nNo(5), nNo(6)) = nBonus(nNo(4), nNo(5), nNo(6)) + 1
nBonus(nNo(4), nNo(5), nNo(7)) = nBonus(nNo(4), nNo(5), nNo(7)) + 1
nBonus(nNo(4), nNo(6), nNo(7)) = nBonus(nNo(4), nNo(6), nNo(7)) + 1
nBonus(nNo(5), nNo(6), nNo(7)) = nBonus(nNo(5), nNo(6), nNo(7)) + 1
Next i
Sheets("Results").Select
Range("A1").Select
For i = 1 To 49 - 2
For j = i + 1 To 49 - 1
For k = j + 1 To 49
ActiveCell.Offset(0, 0).Value = i
ActiveCell.Offset(0, 1).Value = j
ActiveCell.Offset(0, 2).Value = k
ActiveCell.Offset(0, 3).Value = nNoBonus(i, j, k)
ActiveCell.Offset(0, 4).Value = nBonus(i, j, k)
ActiveCell.Offset(1, 0).Select
Next k
Next j
Next i
Columns("A:IV").AutoFit
Columns("A:IV").HorizontalAlignment = xlCenter
Application.ScreenUpdating = True
End Sub
All the Best.
PAB
Last edited: