Randomize aber wie?

hab1cht

Erfahrenes Mitglied
Hallo ich hab in meinem Script 2 Textfelder (Text1, Text2). In diese Felder gibt man etwas ein. Wenn man jetzt auf einen Button klickt soll ein entweder Text1 oder Text2 ausgegeben werden (in einer Message Box), per Zufall.
Und jetzt ist meine Frage wie das geht. (Bitte Code posten)

Vielen Dank im Voraus.

mfg hab1cht
 
Hallo, versuch´s mal so:
Code:
Private Sub Command1_Click()
Dim Zahl As Integer
  
  Randomize -Timer

  Zahl = Int(2 * Rnd + 1)

  If Zahl = 1 Then
    MsgBox Text1.Text
  Else
    MsgBox Text2.Text
  End If
    
End Sub
 
Danke des geht,
könntest du mir aber bitte noch erklären was das alles heist
( ich hab gerade erst angefangen mit VisualBasic)

mfg
 
Aus der MSDN


Randomize-Anweisung

Initialisiert den Zufallszahlengenerator.

Syntax

Randomize [Zahl]

Das optionaleArgument Zahl ist ein Wert vom TypVariant oder ein beliebiger zulässigernumerischer Ausdruck.

Bemerkungen:
Randomize verwendet Zahl zum Initialisieren des Zufallszahlengenerators der Rnd-Funktion, indem er ihm einen neuenStartwert gibt. Wenn Sie Zahl nicht angeben, wird der vom Systemzeitgeber zurückgegebene Wert als neuer Startwert verwendet.

Wird Randomize nicht verwendet, dann verwendet die Rnd-Funktion (ohne Argumente) dieselbe Zahl als Startwert, wenn sie das erste Mal aufgerufen wird. Danach verwendet sie die zuletzt erzeugte Zahl als Startwert.

Anmerkung:
Wenn Sie Folgen von Zufallszahlen wiederholen möchten, rufen Sie Rnd mit einem negativen Argument auf, unmittelbar bevor Sie Randomize mit einem numerischen Argument verwenden. Durch Verwenden von Randomize mit demselben Wert für Zahl wird die vorherige Folge nicht wiederholt.

*************************

Rnd-Funktion

Gibt einen Wert vom Typ Single zurück, der eine Zufallszahl darstellt.

Syntax

Rnd[(Zahl)]

Das optionaleArgument Zahl ist ein Wert vom TypSingle oder ein beliebiger zulässigernumerischer Ausdruck.

Die Rnd-Funktion gibt einen Wert zurück, der kleiner als 1, aber größer als oder gleich Null ist.

Der Wert von Zahl bestimmt, wie Rnd eine Zufallszahl generiert:

Für jeden gegebenen Standardwert wird dieselbe Zufallszahlenfolge generiert, weil bei jedem nachfolgenden Aufruf der Rnd-Funktion die vorherige Zahl als Startwert für die nächste Zahl in der Folge dient.

Bevor Sie Rnd aufrufen, verwenden Sie die Randomize-Anweisung ohne Argument, um den Zufallszahlengenerator mit einem Startwert zu initialisieren, der auf dem Systemzeitgeber basiert.

Verwenden Sie die folgende Formel, um ganzzahlige Zufallszahlen innerhalb eines bestimmten Bereichs zu erzeugen:

Int((Obergrenze - Untergrenze + 1) * Rnd + Untergrenze)

Obergrenze steht hier für die größte Zahl des Bereichs und Untergrenze für die kleinste Zahl des Bereichs.

Anmerkung Wenn Sie Folgen von Zufallszahlen wiederholen möchten, rufen Sie Rnd mit einem negativen Argument auf, unmittelbar bevor Sie Randomize mit einem numerischen Argument verwenden. Durch Verwenden von Randomize mit demselben Wert für Zahl wird die vorherige Folge nicht wiederholt.

**********************

Int-, Fix-Funktionen

Gibt den ganzzahligen Anteil einer Zahl zurück.

Syntax

Int(Zahl)

Fix(Zahl)

Das erforderlicheArgument Zahl ist ein Wert vom TypDouble oder ein beliebiger zulässigernumerischer Ausdruck. Wenn Zahl den WertNull enthält, wird Null zurückgegeben.

Bemerkungen:
Int und Fix entfernen beide die Nachkommastellen einer Zahl und geben den daraus resultierenden ganzzahligen Wert zurück.

Der Unterschied zwischen Int und Fix besteht darin, daß bei einem negativen Wert von Zahl Int die erste negative ganze Zahl zurückgibt, die kleiner oder gleich Zahl ist, während Fix die erste negative ganze Zahl zurückgibt, die größer oder gleich Zahl ist. Int wandelt zum Beispiel -8,4 in -9 um, während Fix -8,4 in -8 umwandelt.

Fix(Zahl) entspricht dem folgenden Ausdruck:

Sgn(Zahl) * Int(Abs(Zahl))
 
Hier mal eine Funktion mit der zufällige Integerwerter erzeugt werden können.

Code:
Private Function RandomNumber(Upper As Integer, Lower As Integer) As Integer
On Error GoTo LocalError
    Randomize
    RandomNumber = Int((Upper - Lower + 1) * Rnd + Lower)
Exit Function
LocalError:
    RandomNumber = 1
End Function

Die Funktion kann verwendet werden um zufällig einen Wert auszuwählen.
Mit der Select Anweisung können, dann beliebig viele zufällige Werte angezeigt werden.

Code:
    Dim ZufallsZahl As Integer

    ZufalllsZahl = RandomNumber(1,2)

    Select Case ZufallsZahl
        Case 1
              MsgBox Text1.Text
        Case 2
              MsgBox Text2.Text
    End Select
 
Zurück