Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1556to1560
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
Inhaltsverzeichnis

Quiz

Quiz
15.05.2017 11:58:55
Ulquiorra
Guten Tag,
ich möchte in Excel per Makro ein kleines Quiz erstellen. Dieses soll wie folgt funktionieren:
Per Klick auf eine Schaltfläche soll sich eine Maske öffnen, die abfragt "Neues Spiel" oder "Kennwort eingeben"
Das Quiz selbst soll so aufgebaut sein, dass per InputBox eine Frage gestellt wird. Wird diese Frage richtig beantwortet, erhält man ein Kennwort und gelangt zur nächsten Frage. Ist die Frage falsch beantwortet, kommt eine Meldung "Leider Falsch" und man bleibt bei dieser Frage.
Klickt man zu beginn auf "Kennwort eingeben" hat man die Möglichkeit sein erhaltenes Kennwort einzugeben und direkt zur Frage zu gelangen bei der man aufgehört hat.
Wichtig ist, dass man die InputBoxen auf "Spiel beenden" jederzeit canceln kann.
Leider reichen meine Kenntnisse nur bis hier hin:

Sub Schaltfläche1_Klicken()
Dim I1 As String
Dim I2 As String
Dim I3 As String
Dim I4 As String
Dim I5 As String
A:
I1 = InputBox("Was ist 1 + 1?:")
If I1 = "2" Then
B:
I2 = InputBox("Was ist 2 + 2?:")
Else: GoTo A:
If I2 = "4" Then
C:
I3 = InputBox("Was ist 3 + 3?:")
Else: GoTo B:
If I3 = "6" Then
D:
I4 = InputBox("Was ist 4 + 4?:")
Else: GoTo C:
If I4 = "8" Then
E:
I5 = InputBox("Was ist 5 + 5?:")
Else: GoTo D:
End If
End If
End If
End If
End Sub

Ich bitte um Hilfe oder Ratschläge.
Vielen Dank! :)

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

Betreff
Datum
Anwender
Anzeige
AW: Quiz
15.05.2017 13:23:47
ChrisL
Hi
https://www.herber.de/bbs/user/113593.xlsm
Die Tabelle mit den Fragen und PW müsstest du natürlich ausblenden.
Sub Quizzy()
Dim Zeile As Long, varAntwort As Variant
With Worksheets("Tabelle1")
Zeile = 2
If MsgBox("Neu starten?", vbYesNo) = vbNo Then
varAntwort = InputBox("Passwort Eingabe")
If WorksheetFunction.CountIf(.Columns(3), varAntwort) = 0 Then
MsgBox "Passwort falsch, das Quiz beginnt neu"
Else
Zeile = Application.Match(varAntwort, .Columns(3), 0)
End If
End If
Do While Zeile  .Cells(Zeile, 2).Text
varAntwort = Application.InputBox(.Cells(Zeile, 1))
If varAntwort = False Then Exit Sub
If varAntwort  .Cells(Zeile, 2).Text Then
MsgBox "Leider falsch, Frage wiederholen"
Else
MsgBox "Korrekt. Passwort: " & .Cells(Zeile + 1, 3)
End If
Loop
Zeile = Zeile + 1
Loop
End With
End Sub

cu
Chris
Anzeige
AW: Quiz
18.05.2017 15:18:14
Ulquiorra
Hallo ChrisL,
vielen vielen Dank für die schnelle und gute Antwort. Genau so habe ich mir es vorgestellt! :)
Es gibt nur noch eine Kleinigkeit. Wenn ich bei "Neu starten?" auf "Nein" klicke, gelange ich ja auf die Maske, in der man ein Kennwort eingeben muss. Bestätige ich nun allerdings ohne etwas in das Inputfeld einzutragen oder breche ich das Quiz von dieser Maske aus ab, so kommt eine Laufzeitfehlermeldung.
Kann ich dich hierbei nochmals um deine Hilfe bitten?
AW: Quiz
18.05.2017 17:00:58
ChrisL
Hi
Hier der korrigierte Code...
Sub Quizzy()
Dim Zeile As Long, varAntwort As Variant
With Worksheets("Tabelle1")
Zeile = 2
If MsgBox("Neu starten?", vbYesNo) = vbNo Then
varAntwort = Application.InputBox("Passwort Eingabe")
If varAntwort = False Then
Exit Sub
ElseIf varAntwort = "" Or WorksheetFunction.CountIf(.Columns(3), varAntwort) = 0 Then
MsgBox "Passwort falsch, das Quiz beginnt neu"
Else
Zeile = Application.Match(varAntwort, .Columns(3), 0)
End If
End If
Do While Zeile  .Cells(Zeile, 2).Text
varAntwort = Application.InputBox(.Cells(Zeile, 1))
If varAntwort = False Then
Exit Sub
ElseIf varAntwort  .Cells(Zeile, 2).Text Then
MsgBox "Leider falsch, Frage wiederholen"
Else
MsgBox "Korrekt. Passwort: " & .Cells(Zeile + 1, 3)
End If
Loop
Zeile = Zeile + 1
Loop
End With
End Sub

cu
Chris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige