Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
06.05.2008 10:24:10 |
Falko |
|
|
Aw:Zufall in VBA |
06.05.2008 17:27:49 |
jh |
|
|
|
08.05.2008 09:34:22 |
Falko |
|
|
|
08.05.2008 16:02:25 |
jh |
|
|
|
09.05.2008 09:16:13 |
Falko |
|
|
|
07.05.2008 15:06:41 |
Holger |
|
|
Von:
jh |
Datum:
06.05.2008 17:27:49 |
Views:
1011 |
Rating:
|
Antwort:
|
Thema:
Aw:Zufall in VBA |
Hallo,
Nimm dir eine unbenutzte Spalte (in meinem Beispiel Spalte F)
und fülle die Zeilen 1 bis 24 mit 0. Danach kannst du die Spalte
ausblenden, falls sie stört (Spalte markieren, Menü Format -
Spalte - Ausblenden).
Dim Zufallszahl As Integer
Randomize Timer
If Cells(24, 6) = 23 Then
Cells(1, 6) = 0
Range("F1:F24").FillDown
End If
Do
Zufallszahl = Int((23 * Rnd) + 1)
Loop Until Cells(Zufallszahl, 6) = 0
Cells(Zufallszahl, 6) = 1
Cells(24, 6) = Cells(24, 6) + 1
MsgBox Cells(Zufallszahl + 3, 4) & " " & _
Cells(Zufallszahl + 3, 5)
Falls du die Funktion nicht durchschaust: Spalte F dient als
Speicher für die bisher ermittelten Zufallszahlen. Wert 0 in
einer Zelle bedeutet, dass die Nummer der betreffenden Zeile
noch nicht "gezogen" wurde, sobald das geschieht, wird die
Zelle auf 1 gesetzt. Die Do-Loop-Schleife gewährleistet, dass
Zahlen, die bereits gezogen wurden, übergangen werden, indem
sie so lange läuft, bis eine Zahl ermittelt wird, die noch
nicht dran war. Zelle F24 dient als Zähler. Wenn sie den Wert
23 enthält, waren alle Zahlen von 1 bis 23 dran, die Zellen
werden auf 0 gesetzt und das Spiel beginnt von vorn. Die
Ausgabe geht wie du siehst auch ganz einfach ohne 23 mal
If-Then. Wenn du die Aktion mit einem CommandButton aus
der Steuerelement-Toolbox startest, musst du seine
TakeFocusOnClick-Eigenschaft auf False setzen, sonst
gibt es bei FillDown einen Fehler. Bei einem Button aus der
Symbolleiste Formular ist das nicht notwendig.
(Das Eigenschaftsfenster wird im Entwurfsmodus mit einem
Rechtsklick auf den Button und die Auswahl "Eigenschaften"
angezeigt.)
Gruß
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
06.05.2008 10:24:10 |
Falko |
|
|
Aw:Zufall in VBA |
06.05.2008 17:27:49 |
jh |
|
|
|
08.05.2008 09:34:22 |
Falko |
|
|
|
08.05.2008 16:02:25 |
jh |
|
|
|
09.05.2008 09:16:13 |
Falko |
|
|
|
07.05.2008 15:06:41 |
Holger |
|
|