Schleife und Timer gleichzeitig
13.03.2023 10:52:36
Karsten
unten habe ich einen Code. Meine Frage ist wie ich es hinbekomme, dass wenn CommandButton1 durch CommandButton3 in Schleife gesetzt wird, CommandButton1 weiterläuft, auch wenn ich CommandButton5 klicke.
Über Tipps und Eure Hilfe bin ich sehr Dankbar.
LG Karsten
Public Sub CommandButton1_Click()
CommandButton1.Enabled = False ' Button deaktivieren
CommandButton1.BackColor = &HFF&
timerSeconds = GetTimerSeconds() ' Zeit abhängig von der stufe festlegen
income = GetIncome() ' Einkommen abhängig von der Stufe festlegen
Do While timerSeconds > 0
CommandButton1.Caption = timerSeconds & " Sekunden"
DoEvents ' Aktualisierung des Labels erzwingen
timerSeconds = timerSeconds - 1 ' Zeit um 1 Sekunde reduzieren
Application.Wait (Now + TimeValue("0:00:01")) ' 1 Sekunde warten
Loop
einnahmen = einnahmen + income
Label1.Caption = Format((Label1.Caption) + income, "0.00 ") 'Kontostand aktualisieren
CommandButton1.Caption = "Produziere Möbelfolie" 'Überschrift des Buttons wieder zurücksetzen
CommandButton1.Enabled = True ' Button wieder aktivieren
CommandButton1.BackColor = &HFF00&
End Sub
Public Function GetTimerSeconds() As Integer
Dim baseSeconds As Integer
baseSeconds = 10
If level > 1 Then
baseSeconds = baseSeconds * 0.5 ^ (level - 1)
End If
If baseSeconds 1 Then
baseSeconds = 1
End If
GetTimerSeconds = baseSeconds
End Function
Public Function GetIncome() As Double
Dim baseIncome As Double
baseIncome = 1
If level > 1 Then
baseIncome = baseIncome * 1.5 ^ (level - 1)
End If
GetIncome = baseIncome
End Function
Public Sub CommandButton3_Click()
If Val(Label1.Caption) >= price2 Then ' Prüfen, ob Kontostand ausreichend ist
Label1.Caption = Format((Label1.Caption - price2), "0.00 ")
price2 = price2 * 2
CommandButton3.Visible = False
Label5.Visible = False
Do While True
CommandButton1_Click ' Die Schleife starten
Loop
Else
MsgBox "Kontostand nicht ausreichend, um Assistent zu starten.", vbExclamation, "Fehler"
End If
End Sub
Public Sub CommandButton5_Click()
CommandButton5.Enabled = False ' Button deaktivieren
CommandButton5.BackColor = &HFF&
timerSeconds2 = GetTimerSeconds2() ' Zeit abhängig von der stufe festlegen
income2 = GetIncome2() ' Einkommen abhängig von der Stufe festlegen
Do While timerSeconds2 > 0
CommandButton5.Caption = timerSeconds2 & " Sekunden"
DoEvents ' Aktualisierung des Labels erzwingen
timerSeconds2 = timerSeconds2 - 1 ' Zeit um 1 Sekunde reduzieren
Application.Wait (Now + TimeValue("0:00:01")) ' 1 Sekunde warten
Loop
einnahmen2 = einnahmen2 + income2
Label1.Caption = Format((Label1.Caption) + income2, "0.00 ") 'Kontostand aktualisieren
CommandButton5.Caption = "Produziere Kunstleder" 'Überschrift des Buttons wieder zurücksetzen
CommandButton5.Enabled = True ' Button wieder aktivieren
CommandButton5.BackColor = &HFF00&
End Sub
Public Function GetTimerSeconds2() As Integer
Dim baseSeconds2 As Integer
baseSeconds2 = 10
If level2 > 1 Then
baseSeconds2 = baseSeconds2 * 0.5 ^ (level2 - 1)
End If
If baseSeconds2 1 Then
baseSeconds2 = 1
End If
GetTimerSeconds2 = baseSeconds2
End Function
Public Function GetIncome2() As Double
Dim baseIncome2 As Double
baseIncome2 = 100
If level2 > 1 Then
baseIncome2 = baseIncome2 * 1.5 ^ (level2 - 1)
End If
GetIncome2 = baseIncome2
End Function
Anzeige