Office: (Office 2016) Glücksrad mit VBA und For-Schleifen

Helfe beim Thema Glücksrad mit VBA und For-Schleifen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen! Da ich hier immer Hilfe finde wende ich mich mal wieder mit folgendem Problem an euch: Ich möchte in Excel etwas auslosen. Das... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Poempel, 10. Oktober 2018.

  1. Glücksrad mit VBA und For-Schleifen


    Hallo zusammen!

    Da ich hier immer Hilfe finde wende ich mich mal wieder mit folgendem Problem an euch:

    Ich möchte in Excel etwas auslosen. Das ansich ist auch kein Problem. Damit es etwas spannender ist und etwas hübscher aussieht soll es jedoch wie bei einem Glücksrad ein paar Sekunden dauern, bis das endgültige Los angezeigt wird. In der Zwischenzeit soll per Zufall ein anderes Los als gezogen angezeigt werden, eben wie bei einem Glücksrad. Zusätzlich wird das aktuelle Los noch farblich markiert. Etwas schwer zu erklären, ich hoffe ihr versteht es.
    Da zunächst einer von vier Töpfen gezogen wird und anschließend aus dem Topf das wirkliche Los, wird unten angezeigter Code quasi zweimal hintereinander ausgeführt, eben nur mit anderen Bezugs-Auswahl. Wie ihr dort seht habe ich das ganze mit For-Schleifen und Sleep realisiert. Hierbei kommt es immer wieder zu Problemen. Erstmal läuft das ganze nicht schön rund, spirch es kommt immer wieder zu rucklern. Dabei kann es desweiteren dann passieren, dass Excel komplett abstüzrt, weiß wird und "keine Rückmeldung" ausgibt, bis der Code komplett durchgelaufen ist.

    Bei folgendem Code-Abschnitt kommt es zu den Abstürzen:

    Code:
        Dim i As Integer
            For i = 0 To 60
            zz2 = Round((4 - 1) * Rnd() + 1, 0)
            Tabelle1.Cells(14, 13).Value = zz2
            Tabelle1.Cells(2, 2 * zz2).Interior.ColorIndex = 6
            Sleep 50
            Tabelle1.Range("B2:H2").Interior.ColorIndex = 0
        Next i
        
        Dim j As Integer
        For j = 0 To 30
            zz2 = Round((4 - 1) * Rnd() + 1, 0)
            Tabelle1.Cells(14, 13).Value = zz2
            Tabelle1.Cells(2, 2 * zz2).Interior.ColorIndex = 6
            Sleep 100
            Tabelle1.Range("B2:H2").Interior.ColorIndex = 0
        Next j
        
        Dim k As Integer
        For k = 0 To 3
            zz2 = Round((4 - 1) * Rnd() + 1, 0)
            Tabelle1.Cells(14, 13).Value = zz2
            Tabelle1.Cells(2, 2 * zz2).Interior.ColorIndex = 6
            Sleep 500
            Tabelle1.Range("B2:H2").Interior.ColorIndex = 0
        Next k
    
    Die For-Schleifen werden immer kürzer, dafür die Sleep-Zeit immer länger um eben die Spannung ein bisschen aufrecht zu erhalten. Ist die Kombination aus For-Schleife und Sleep das Problem oder gibt es generell eine rechenunaufwändigere Methode um so eine Art Glücksrad zu realisieren?

    Vielen Dank schonmal
    Poempel
     
    Poempel, 10. Oktober 2018
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    ich habe deinen Codeausschnitt in eine SUB verpackt, die Variable "zz2" als Integer deklariert und auf Modulebene noch die "Sleep"-SUB aus der "kernel32.dll" (mittels bedingtem Compilercode) deklariert:
    Code:
    Option Explicit
    
    #If VBA7 Then
      Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
    #Else
      Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long)
    #End If
    
    Sub test()
    
        Dim zz2 As Integer
    
        'Dein Code von vorhin
        '....
    
    End Sub
    
    
    und konnte kein Problem, was seinen Ablauf betreffen sollte, feststellen.
    Ich habe ihn mehrmals laufen lassen.
     
    Exl121150, 11. Oktober 2018
    #2
Thema:

Glücksrad mit VBA und For-Schleifen

Die Seite wird geladen...
  1. Glücksrad mit VBA und For-Schleifen - Similar Threads - Glücksrad VBA For

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Glücksrad unter Excel mit VBA

    in Microsoft Excel Hilfe
    Glücksrad unter Excel mit VBA: Hallo, ich habe heute mal eine ungewöhnliche frag, ich will meinem Sohn helfen der ein Glücksrad mit 7 Bereichen erstellen soll und wenn ich unter Excel ein Button drücke soll dann das Glücksrad...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden