Supportnet / Forum / Tabellenkalkulation
Eigene Funktion schreiben
Frage
Hallo Zusammen,
ich würde mir gerne eine eigene Funktion in VBA schreiben. Und zwar so, dass ich diese wie jede andere Funktion in Excel verwenden kann.
Die Funktion soll folgendes machen...
Ich übergebe ihr max. 4 Parameter und min. 0
soll solange eine Zufallszahl generiert werden, bis eine dabei ist, die nicht der übergeben Zahl entspricht.
Ein Beispiel: (Bei einem Bereich von 5 Zahlen)
Zufallohne(1,3,0,0)
zZahl= Zufallszahl aus bereich 1 bis 5
While ( zZahl==1 oder zZahl==3 oder......)
zZahl= neue Zufallszahl;
Rückgabe der Zufallszahl
end
Da ich nur JAVA Kenntnisse besitze, tu ich mich noch schwer mit der VBA Syntax... Wäre toll,wenn mir jemand helfen kann!
Gruß
Antwort 1 von JoeKe
Hallo Jack,
versuch es mal so:
Option Explicit
Function zufall(zahl1 As Integer, zahl2 As Integer, _
zahl3 As Integer, zahl4 As Integer) As Integer
Dim wert As Integer
Application.Volatile
Do
wert = Int(Rnd * 10) + 1
Loop While wert = zahl1 Or wert = zahl2 Or wert = zahl3 Or wert = zahl4
zufall = wert
End Function
Gruß
JöKe
versuch es mal so:
Option Explicit
Function zufall(zahl1 As Integer, zahl2 As Integer, _
zahl3 As Integer, zahl4 As Integer) As Integer
Dim wert As Integer
Application.Volatile
Do
wert = Int(Rnd * 10) + 1
Loop While wert = zahl1 Or wert = zahl2 Or wert = zahl3 Or wert = zahl4
zufall = wert
End Function
Gruß
JöKe
Antwort 2 von Flupo
Ich hab auch eine Lösung gebastelt:
Aufruf dann z.B. mit:
Function zufallohne(ByVal Arg1, Arg2, Arg3, Arg4 As Integer)
zzahl = Int((6 * Rnd) + 1) ´ Zufallszahl im Bereich von 1 bis 6
While zzahl = Arg1 Or zzahl = Arg2 Or zzahl = Arg3 Or zzahl = Arg4
zzahl = Int((6 * Rnd) + 1)
Wend
zufallohne = zzahl
End Function
Aufruf dann z.B. mit:
Sub test()
zufall = zufallohne(1, 4, 0, 0)
End Sub
Antwort 3 von Jack123
Hey, vielen Dank!!!
Antwort 4 von Jack123
Zitat:
Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Siehe FAQ2.
Admininfo: bitte vermeide Mehrfachanfragen in verschiedenen, bzw. gleichen Gruppen. Siehe FAQ2.