Re: zahlengenrator
04.07.2002 18:15:19
Coach
Hallo Micha,mit folgenden Funktionen kannst Du das beliebige Zahlen nach diesem Schema erzeugen:
Public Function zme(ByVal Start, Ende, LetzteZiffer, Zielquersumme) As Variant
Dim help As Long
If (Start >= Ende) Or (LetzteZiffer > 9) Or (LetzteZiffer < 0) Then
zme = "Fehlerhafte Vorgabe"
Exit Function
End If
Do
help = CLng((Start + Rnd * (Ende - Start)) / 10) * 10 + LetzteZiffer
Loop Until (qs(help) = Zielquersumme)
zme = help
End Function
Function qs(ByVal zahl As Long) As Long
Dim i, Erg As Long
Dim s As String
Erg = 0
s = CStr(zahl)
For i = 1 To Len(s)
Erg = Erg + CInt(Mid(s, i, 1))
Next
qs = Erg
End Function
Aufruf z.B. mit =zme(1000000,9999999,5,35)
Wenn die Zahl bei jeder Berechnung neu erzeugt werden soll,
einfach nach der Functionzeile application.volatile ergänzen.
Gruß Coach
PS: Die Funktion beinhaltet keine Überprüfung, ob die Zielquersumme machbar ist mit den Vorgaben, kann deshalb "ewig" laufen.