Citat:
dusans:
Formula (funkcija) za ovo bi bila cenim bezpotrebno komplikovana.
Evo neki pseudo kod za VBA, ako ti znači:
Code:
Limit = 400
Run = 0
Col = 2
For Row = 2 .. 9
Rnd = Cell[1, Row]
Run = Run + Rnd
If (Run <= Limit)
' Normal case
Cell[Col, Row] = Rnd
if (Run = Limit) Col = Col + 1
Else
' Split and carry
Cell[Col, Row] = Limit - Run + Rnd
Run = Run MOD Limit
Col = Col + 1
Cell[Col, Row] = Run
End If
Next Row
Jedino neće raditi potpuno tačno ako je neki od randoma veći od 400.
[Ovu poruku je menjao dusans dana 24.08.2015. u 17:14 GMT+1]
Iskren da budem, nisam poznavalac vba koda. Probao sam ovo ali izbacuje mnogo gresaka u samom ispisu koda, tj sintaksa nije ispravna.
Pokusao sam nesto da ispravim, cackao po nekim knjigama i netu...ali nece ni to da radi.
Sub kod()
Dim Row As Integer
Dim Rnd As Integer
Dim Run As Integer
Dim Col As Integer
Dim Limit As Integer
Dim Cells As Integer
Limit = Range("I2")
Run = 0
Col = 2
For Row = 2 To 10000
Rnd = Cells(1, Row)
Run = Run + Rnd
If Run <= Limit Then
' Normal case
Rnd = Cells(Col, Row)
If (Run = Limit) Then Col = Col + 1
Else
' Split and carry
Cells(Col, Row) = Limit - Run + Rnd
Run = Run Mod Limit
Col = Col + 1
Cells(Col, Row) = Run
End If
Next Row
End Sub
Posle sam pokusao ovo...
Sub step()
If Range("A2") < Range("G2") Then
Range("B2") = Range("A2")
ElseIf Range("B10") > Range("G2") Then
i = Range("B10") - Range("G2")
Range("B1") = Range("A1") - i
End If
If Range("B10") < Range("G2") Then
Range("B3") = Range("A3")
ElseIf Range("B10") > Range("G2") Then
i = Range("B10") - Range("G2")
Range("B2") = Range("A2") - i
End If
If Range("B10") < Range("G2") Then
Range("B4") = Range("A4")
ElseIf Range("B10") > Range("G2") Then
i = Range("B10") - Range("G2")
Range("B3") = Range("A3") - i
End If
If Range("B10") < Range("G2") Then
Range("B5") = Range("A5")
ElseIf Range("B10") > Range("G2") Then
i = Range("B10") - Range("G2")
Range("B4") = Range("A4") - i
End If
End Sub
ali stalno sebe teram da zadajem neke uslove i kontam da bi to islo do beakonavnosti.
Svakako tabela bi imala puno redova, a ovo sto sam napisao ne bi zavrsio za mesec dana.