Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallszahlen per Makro erzeugen und überprüfen

Forumthread: Zufallszahlen per Makro erzeugen und überprüfen

Zufallszahlen per Makro erzeugen und überprüfen
22.11.2013 09:34:52
Howard
Hallo,
habe eine Excel-Tabelle, in der im Bereich D30 bis I30 sechs Zufallszahlen (ZUFALLSBEREICH(1;49) erzeugt werden. Zusätzlich habe ich acht Excel-Formeln
( =WENN(....), die diese Zufallszahlen auf Erfüllung vorgegebener Kriterien überprüfen. Ist die Bedingung erfüllt, liefert die Zelle den Text "Okay".
Eine neunte Formel überprüft nun die Anzahl der erfüllten "Okay"-Felder und liefert, für den Fall, daß alle acht Felder "Okay" melden, den Wert "Gültig", bzw. "Ungültig",
wenn der Wert der Okay-Felder kleiner als 8 ist. Dieser Wert erscheint nun in
Feld F39.
Nach jedem Drücken der Taste F9 werden somit sechs Zufallszahlen erzeugt und in
Feld F39 steht ob diese Zahlen nun "Gültig"oder "Ungültig" sind.
Da man nun ganz schön oft F9 drücken muß, bis endlich "Gültig" erscheint, muß
ein Makro her.
Die Zufallszahlen könnte man erzeugen durch:

Sub ZufallszahlenErzeugen()
Dim Bereich As Range
Dim zelle As Range
Set Bereich=Range("D30:I30")
For Each zelle in Bereich
zelle.Value=Int((49 * Rnd) + 1)
Next zelle
End Sub
So weit, so gut. Aber jetzt bin ich auch schon am Ende. Das Makro soll ja nun
nicht nur die Zahlen erzeugen, sondern überprüfen ob in Feld F39 "Gültig" steht.
Ist dies der Fall, sollen die Zahlen angezeigt werden, ganz normal wie wenn man
Taste F9 gedrückt hat. Steht aber "Ungültig" in F39, sollen sofort neue Zufalls-
zahlen erzeugt werden, solange bis "Gültig" erscheint.
Ich bin ziemlich VBA-unerfahren, vermute aber, daß die Erzeugung der Zufallszahlen
irgendwie in eine Schleife eingebunden werden muß, die F39 bei jedem Durchlauf
checkt und erst bei "Gültig" stoppt.

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallszahlen per Makro erzeugen und überprüfen
22.11.2013 09:40:02
ransi
HAllo
Was sind denn deine Kriterien für "ok" bzw. "gültig" ?
ransi

AW: Zufallszahlen per Makro erzeugen und überprüfen
22.11.2013 09:55:46
Rudi
Hallo,

Sub ZufallszahlenErzeugen()
Dim Bereich As Range
Dim zelle As Range
Set Bereich = Range("D30:I30")
Bereich.Clear
Do
For Each zelle In Bereich
zelle.Value = Int((49 * Rnd) + 1)
Next zelle
Range("F39").Calculate
Loop Until Range("F39") = "Gültig"
End Sub
Die Erzeugung von Lottozahlen geht aber auch per Formeln.
Gruß
Rudi

Anzeige
AW: Zufallszahlen per Makro erzeugen und überprüfen
22.11.2013 16:09:38
Howard
Rudi, Du hast ein Bier gut bei mir.
Gruß
Howard
;
Anzeige
Anzeige

Infobox / Tutorial

Zufallszahlen mit Excel VBA erstellen und überprüfen


Schritt-für-Schritt-Anleitung

Um Zufallszahlen in Excel mit VBA zu generieren, folge dieser Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den Visual Basic for Applications (VBA)-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" > "Einfügen" > "Modul".
  3. Kopiere den folgenden VBA-Code:

    Sub ZufallszahlenErzeugen()
       Dim Bereich As Range
       Dim zelle As Range
       Set Bereich = Range("D30:I30")
       Bereich.Clear
       Do
           For Each zelle In Bereich
               zelle.Value = Int((49 * Rnd) + 1)
           Next zelle
           Range("F39").Calculate
       Loop Until Range("F39") = "Gültig"
    End Sub
  4. Schließe den VBA-Editor:

    • Klicke auf das X, um den Editor zu schließen.
  5. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle ZufallszahlenErzeugen und klicke auf "Ausführen".

Jetzt werden die Zufallszahlen im Bereich D30 bis I30 generiert, und das Makro überprüft, ob der Inhalt in F39 "Gültig" ist.


Häufige Fehler und Lösungen

  • Fehler: "Überlauf" beim Ausführen des Makros:

    • Stelle sicher, dass du die richtigen Zellreferenzen verwendest. Überprüfe, ob der Bereich D30:I30 korrekt definiert ist.
  • Fehler: Das Makro läuft endlos:

    • Vergewissere dich, dass die Überprüfung in der Zelle F39 korrekt funktioniert. Es sollte sicherstellen, dass die Bedingung für "Gültig" erfüllt ist.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch die Funktion ZUFALLSBEREICH in Excel nutzen, um Zufallszahlen zu generieren:

=ZUFALLSBEREICH(1;49)

Diese Formel kannst du einfach in die Zellen D30 bis I30 kopieren. Beachte jedoch, dass du die Zahlen manuell durch Drücken von F9 aktualisieren musst.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Zufallszahlen generieren und die Ergebnisse überprüfen kannst:

  1. Erstelle die Formeln:

    • In den Zellen D30 bis I30 verwendest du die Formel =ZUFALLSBEREICH(1;49).
    • In Zelle F39 könntest du eine Formel wie =WENN(ZÄHLENWENN(D30:I30; "DeinKriterium") = 8; "Gültig"; "Ungültig") verwenden.
  2. Führe das Makro aus:

    • Das Makro generiert die Zufallszahlen automatisch und überprüft, ob sie "Gültig" sind.

Tipps für Profis

  • Optimierung des Makros:

    • Du kannst die Effizienz des Makros verbessern, indem du Application.ScreenUpdating und Application.Calculation vor und nach dem Loop setzt.
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ' Dein Code hier
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
  • Erweiterung des Codes:

    • Du kannst das Makro erweitern, um auch andere Kriterien zu überprüfen, oder die Anzahl der Zufallszahlen dynamisch zu ändern.

FAQ: Häufige Fragen

1. Wie viele Zufallszahlen kann ich mit diesem Makro generieren? Mit dem aktuellen Code werden genau sechs Zufallszahlen generiert, die in den Zellen D30 bis I30 angezeigt werden.

2. Kann ich den Bereich der Zufallszahlen ändern? Ja, du kannst die ZUFALLSBEREICH-Funktion oder den Bereich im VBA-Code anpassen, um andere Werte zu generieren. Stelle sicher, dass du die Bereiche in beiden Stellen konsistent hältst.

3. Welche Excel-Version benötige ich für das VBA-Makro? Das VBA-Makro sollte in allen modernen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2010 und höher.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige