Page tree
Skip to end of metadata
Go to start of metadata
Private Done As Boolean
Private CL0 As Integer
Private CL1 As Integer
Private CL2 As Integer
Private CL3 As Integer
Private CL4 As Integer
Private CL5 As Integer
Private CL6 As Integer
Private CL7 As Integer
 
 
Sub CalcCombination()
 
Dim value As Double
value = 361.1
 
Dim ws As Worksheet, tv As Double, tv2 As Double
Set ws = Worksheets("Sheet2")
   
Done = False
 
For i = 1 To 32
    tv = ws.Cells(i, 1)
    Debug.Print "Starting for Row " & i & " TestValue: " & tv & vbCrLf
    CL0 = i
    Call rec(i + 1, 32, value, tv, ws, 0)
   
    If Done Then
        GoTo Gedaan
    End If
'    For j = i + 1 To 32
'        tv2 = tv + ws.Cells(j, 1)
'    Next j
Next i
 
Gedaan:
 
End Sub
 
Sub rec(startRow As Integer, endRow As Integer, checkValue As Double, CurrentValue As Double, ws As Worksheet, depth As Integer)
 
Dim CCV As Double
'1 create for loop
For i = startRow To endRow
Debug.Print "Current Row: " & i & " , Depth: " & depth
Select Case depth
    Case 0
     CL1 = i
    Case 1
     CL2 = i
    Case 2
     CL3 = i
    Case 3
    CL4 = i
    Case 4
    CL5 = i
    Case 5
    CL6 = i
    Case 6
    CL7 = i
End Select
 
 
 
'add and check value
CCV = CurrentValue + CDbl(ws.Cells(i, 1).value)
If CCV = checkValue Then
    Debug.Print "HURRAY!! Depth: " & depth & "Current Row: " & i
    MsgBox "HURRAY!! Depth: " & depth & "Current Row: " & i
    MsgBox " CL0: " & CL0 & " CL1: " & CL1 & " CL2: " & CL2 & " CL3: " & CL3 & " CL4: " & CL4 & " CL5: " & CL5 & " CL6: " & CL6 & " CL7: " & CL7
    Debug.Print " CL0: " & CL0 & " CL1: " & CL1 & " CL2: " & CL2 & " CL3: " & CL3 & " CL4: " & CL4 & " CL5: " & CL5 & " CL6: " & CL6 & " CL7: " & CL7
    Done = True
End If
 
If CCV > checkValue Then
    'Debug.Print "too high, next!!" & "StartRow: " & startRow & " EndRow: " & endRow & " Current i: " & i & vbCrLf
    GoTo NextItem
End If
'recreate range (1 less) and 'call yourself if range is more than xxx
If startRow + 1 <= endRow And Not Done Then
    Call rec(i + 1, endRow, checkValue, CCV, ws, depth + 1)
End If
 
 
 
NextItem:
Next
 
End Sub
  • No labels
Write a comment…