Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sub Buton2_Clic()
- Dim sumaCautata As Double
- Dim coloana As Range
- sumaCautata = InputBox("Introduceti suma pe care doriti sa o atingeti:")
- Set coloana = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
- ClearColumnC2 ' Cură?ăm coloana C2 înainte de a începe
- Dim usedRows() As Boolean
- ReDim usedRows(1 To coloana.Rows.Count) As Boolean
- FindSums coloana, sumaCautata, 1, "", 0, usedRows
- End Sub
- Sub FindSums(coloana As Range, sumaCautata As Double, rowIndex As Long, indices As String, currentSum As Double, usedRows() As Boolean)
- Dim celula As Range
- For i = rowIndex To coloana.Rows.Count
- Set celula = coloana.Cells(i, 1)
- If celula.Value <> "" And IsNumeric(celula.Value) And Not usedRows(i) Then
- Dim newSum As Double
- newSum = currentSum + celula.Value
- If newSum = sumaCautata Then
- WriteIndices indices & celula.Row & " " ' Înregistrăm indicele rândului
- usedRows(i) = True
- ElseIf newSum < sumaCautata Then
- FindSums coloana, sumaCautata, i + 1, indices & celula.Row & " ", newSum, usedRows ' Apelăm recursiv pentru următorul rând
- End If
- End If
- Next i
- End Sub
- Sub WriteIndices(indices As String)
- Dim lastRow As Long
- lastRow = Range("C" & Rows.Count).End(xlUp).Row + 1
- Range("C" & lastRow).Value = Trim(indices)
- End Sub
- Sub ClearColumnC2()
- Range("C:C").ClearContents
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement