Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
764to768
764to768
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA - Bedingungs-Problem

VBA - Bedingungs-Problem
15.05.2006 20:02:47
Jan
Hallo,
Ich bitte euch dringend um Hilfe. Ich arbeite gerade an einer Würfelsimulation, aber habe ein Problem; hier erst der Code:

Sub Würfelspiel()
Rem Variablen festlegen
Dim zeile As Integer
Dim result As Integer
Dim wurfnummer As Integer
Dim highscore As Integer
Dim speicher As Integer
Dim speichera As Integer
Worksheets("Tabelle1").Select
Rem Inhalt des Arbeitsblatzs löschen
ActiveSheet.Range("A1:B60000").Delete
Range("A1").Select
zeile = 1
Cells(zeile, 1).Value = "Wurfnummer"
Cells(zeile, 2).Value = "Würfelergebnis"
wurfnummer = 0
result = 0
Do
speicher = result
wurfnummer = wurfnummer + 1
zeile = zeile + 1
result = Int((6 * Rnd) + 1)
Cells(zeile, 1).Value = wurfnummer
Cells(zeile, 2).Value = result
If result = speicher Then
speichera = result
End If
Loop Until speicher = speichera
End Sub

Leider schreibt mein VBA immer nur den 1. Wurf, d.h. er erfüllt schon beim ersten Durchlauf der Schleife die Bedingung von 'If', was aber beim ersten Mal unmöglich sein sollte.
Kann mir bitte jemand helfen?
MfG Jan

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - Bedingungs-Problem
15.05.2006 20:24:13
Ramses
Hallo
Kuck mal
Sub Würfelspiel()
    
    Rem Variablen festlegen
    Dim zeile As Integer
    Dim result As Integer
    Dim wurfnummer As Integer
    Dim highscore As Integer
    Dim speicher As Integer
    Dim speichera As Integer
    
    Worksheets("Tabelle2").Select
    
    Rem Inhalt des Arbeitsblatzs löschen
    ActiveSheet.Range("A1:B60000").Delete
    Range("A1").Select
    
    zeile = 1
    Cells(zeile, 1).Value = "Wurfnummer"
    Cells(zeile, 2).Value = "Würfelergebnis"
    wurfnummer = 0
    result = 0
    
    Do
        speicher = result
        'Beim ersten Start hat Speicher JETZT den Wert "0"
        wurfnummer = wurfnummer + 1
        zeile = zeile + 1
        result = Int((6 * Rnd) + 1)
        Cells(zeile, 1).Value = wurfnummer
        Cells(zeile, 2).Value = result
        If result = speicher Then
            speichera = result
        End If
        MsgBox "Wert von ""SpeicherA"" :" & speichera
        ':-) Alles klar nun ;-)
        'Da "SpeicherA" nun einen Wert gleich "Speicher" hat
        'ist hier nun mal zu ende
    Loop Until speicher = speichera
End Sub

Gruss Rainer
Anzeige
AW: VBA - Bedingungs-Problem
15.05.2006 20:43:16
Uwe
Hi Jan,
Rainer hat Dir ja schon Deinen Denkfehler erklärt. Wenn ich Dein Makro richtig verstanden habe soll es stoppen wenn zweimal der gleich Wurf gefallen ist. Dann muss es so aussehen:

Sub Würfelspiel()

Rem Variablen festlegen
Dim zeile As Integer
Dim result As Integer
Dim wurfnummer As Integer
Dim highscore As Integer
Dim speicher As Integer
Dim speichera As Integer
Worksheets("Tabelle1").Select

Rem Inhalt des Arbeitsblatzs löschen
ActiveSheet.Range("A1:B60000").Delete
Range("A1").Select
zeile = 1
Cells(zeile, 1).Value = "Wurfnummer"
Cells(zeile, 2).Value = "Würfelergebnis"
wurfnummer = 0
result = 0
Do
    speicher = result
    wurfnummer = wurfnummer + 1
    zeile = zeile + 1
    result = Int((6 * Rnd) + 1)
    Cells(zeile, 1).Value = wurfnummer
    Cells(zeile, 2).Value = result
    If result = speicher Then Exit Sub
Loop
End Sub


Gruß
Uwe
(:o)
Anzeige
AW: VBA - Bedingungs-Problem
15.05.2006 20:49:03
Jan
Hallo,
Oh das habe ich gar net bedacht! Danke sehr!
MfG Jan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige