Option
Explicit
Option
Base 1
Const
Spalte = 7
Const
ZStart = 2
Const
Anzahl = 10
Dim
Zeilen()
As
Long
, Zend
As
Long
, Zeile
As
Long
Sub
AddZufall()
Dim
i, Wert
Zend = Cells(Rows.Count, Spalte).
End
(xlUp).Row
If
Zend - ZStart <= Anzahl
Then
MsgBox
"Mit diesen Parametern nicht möglich, Anzahl zu groß"
, vbCritical,
"geht so nicht"
Exit
Sub
End
If
Randomize
Zeile = Int((Zend * Rnd) + ZStart)
ReDim
Zeilen(1
To
Anzahl)
Zeilen(1) = Zeile
Wert = Cells(Zeile, Spalte)
For
i = 2
To
Anzahl
Zeile = FindNewz
Zeilen(i) = Zeile
Wert = Wert + Cells(Zeile, Spalte)
Next
i
Cells(2, 8) = Wert
End
Sub
Function
FindNewz()
Dim
erg
As
Boolean
, z
As
Long
, i
Do
erg =
False
z = Int((Zend * Rnd) + ZStart)
For
Each
i
In
Zeilen
If
i = z
Then
erg =
True
Randomize
Exit
For
End
If
Next
i
Loop
Until
Not
erg
FindNewz = z
End
Function