Dim sumrng As Range
Dim n, sp, i, abzug, gesamt As Integer
Dim zu(4) As Double' Array mit 5 ( 0-4) elementen als double
For i = 1 To 3
'zum Test erstmal nur für 3 Zeilen
zu(0) = 0
Set sumrng = Range(Cells(i, 1), Cells(i, 4))
gesamt = WorksheetFunction.Sum(sumrng)
abzug = Application.WorksheetFunction.Round(0.1 * gesamt, 0)
Randomize' damit nicht immer die gleichen Zufallszahlen kommen
For n = 1 To 4
zu(n) = Rnd(Timer)' die Zufallszahlen werden in zu(1 bis 4) gespeichert - timer ist unwichtig, man könnte auch irgendeine andere Zahl nehmen, aber timer hat jedesmal eine andere Zahl
zu(0) = zu(0) + zu(n)' die Zufallszahlen' (zwischen 0 und 1) werden aufaddiert in zu(0)
Next n
For sp = 1 To 4
Cells(i, sp) = Cells(i, sp) - abzug * zu(sp) / zu(0)' wenn die Zufallszahlen 1,2,3,4 wären, wäre die Summe 10 und von der ersten Zelle würde 1/10 des Gesamtabzugs abgezogen, von der 2. 2/10, von der 3. 3/10 und von der 4. 4/10.
Next sp
Next i
|