Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
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

OptionButton: farbliche Auswertung

OptionButton: farbliche Auswertung
06.12.2016 18:29:20
Markus
Liebes Forum,
ich habe mir anhand eines Youtube Videos (Kanal: Balders Welt) ein kleines "Quiz" gebastelt. Eine Änderung würde ich gerne vornehmen, bei der ich mit meinen VBA-Kenntnissen nicht weiterkomme.
Hier erstmal der VBA-Code:
Meine UserForm besteht momentan aus 2 Commandbuttons.
Private Sub CommandButton2_Click()
' Schließt die UserForm
quit = 1
Unload Me
End Sub

Private Sub UserForm_Initialize()
UserForm1.Caption = "Fragen" & i & "von 5"
Label1 = Sheets(1).Cells(a, 1)
OptionButton1.Caption = Sheets(1).Cells(a, 2)
OptionButton2.Caption = Sheets(1).Cells(a, 3)
OptionButton3.Caption = Sheets(1).Cells(a, 4)
End Sub

Private Sub CommandButton1_Click()
'Wertet den OptionButton aus und färbt ggf. die falsche Antwort rot ein
'Die nächste Frage wird nur dann eingeblendet, wenn die richtige Antwort ausgewählt wird
If OptionButton1 = True And Sheets(1).Cells(a, 5) = 1 Or OptionButton2 = True And Sheets(1). _
Cells(a, 5) = 2 Or OptionButton3 = True And Sheets(1).Cells(a, 5) = 3 Then
Unload Me
Else
If OptionButton1 = True Then
OptionButton1.ForeColor = vbRed
End If
If OptionButton2 = True Then
OptionButton2.ForeColor = vbRed
End If
If OptionButton3 = True Then
OptionButton3.ForeColor = vbRed
End If
fehler = fehler + 1
End If
End Sub

Mein Anliegen: Ist es möglich, dass man mit dem Button ("Auswertung" - momentan CommandButton1) auf die UserForm die beiden falschen Antworten rot einfärbt (wie bisher) und die richtige Antwort grün? Der gesetzte OptionButton soll dabei bestehen bleiben. Es soll noch nicht die nächste Frage aufgerufen werden, auch wenn die richtige Antwort gegeben wurde.
und anschließend noch einen Button "Weiter" welcher die nächste Frage aufruft.
Vielen Dank euch.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: OptionButton: farbliche Auswertung
07.12.2016 06:03:25
fcs
Hallo Markus,
sicher ist das möglich.
Du muss dann in diesem Abschnitt
If OptionButton1 = True And Sheets(1).Cells(a, 5) = 1 Or OptionButton2 = True And Sheets(1). _
Cells(a, 5) = 2 Or OptionButton3 = True And Sheets(1).Cells(a, 5) = 3 Then
Unload Me
Else

die Zeile
Unload Me
ersetzen durch
Me.CommandButton3.Enabled = True
CommandButton3 wäre dann die "Weiter"-Schaltfläche.
In UserForm_Initialize fügst du die Zeile ein:
Me.CommandButton3.Enabled = False
Mit der "Weiter"-Schaltfläche startest du dann das Makro, das die Daten zur nächsten Frage lädt.
Also Fragen-Zähler um 1 erhöhen und Daten aus Sheet(1) zur nächsten Frage den Steuerelementen zuweisen analog zu der Initialize-Prozedur. Am Ende des Makros musst du dann noch die Farben der Optionsschaltflächen zurücksetzen und die "Weiter"-Schaltfläche deaktivieren.
LG
Franz
Anzeige
AW: OptionButton: farbliche Auswertung
07.12.2016 19:55:18
Markus
Hallo Franz,
erstmal Danke für deine Hilfe - habe heute Abend versucht deine Worte umzusetzen, jedoch bekomme ich es nicht hin. Wäre sehr nett, wenn du mir da helfen kannst.
Hier der komplette Code (wie gesagt ist 1:1 aus dem YouTube Video übernommen):
Modul, welches die Fragen zufällig auswählt
Global a, i, fehler, quit As Integer
Sub Fragen()
Dim y(1 To 5), mini, temp As Integer
fehler = 0
quit = 0
For i = 1 To 5
mini = WorksheetFunction.Min(Sheets(1).Columns(6))
Do
temp = 0
a = Int(Rnd * 10) + 1
For j = 1 To 5
If a = y(j) Then
temp = 1
End If
Next
If Sheets(1).Cells(a, 6) - mini >= 2 Then
temp = 1
End If
Loop Until temp = 0
Sheets(1).Cells(a, 6) = Sheets(1).Cells(a, 6) + 1
y(i) = a
UserForm1.Show
If quit = 1 Then
Exit For
End If
Next
End Sub
UserForm:
Private Sub CommandButton2_Click()
quit = 1
Unload Me
End Sub

Private Sub UserForm_Initialize()
Me.CommandButton3.Enabled = False
UserForm1.Caption = "Fragen" & i & "von 5"
Label1 = Sheets(1).Cells(a, 1)
OptionButton1.Caption = Sheets(1).Cells(a, 2)
OptionButton2.Caption = Sheets(1).Cells(a, 3)
OptionButton3.Caption = Sheets(1).Cells(a, 4)
End Sub

Private Sub CommandButton1_Click()
If OptionButton1 = True And Sheets(1).Cells(a, 5) = 1 Or OptionButton2 = True And Sheets(1). _
Cells(a, 5) = 2 Or OptionButton3 = True And Sheets(1).Cells(a, 5) = 3 Then
Me.CommandButton3.Enabled = True
Else
If OptionButton1 = True Then
OptionButton1.ForeColor = vbRed
End If
If OptionButton2 = True Then
OptionButton2.ForeColor = vbRed
End If
If OptionButton3 = True Then
OptionButton3.ForeColor = vbRed
End If
fehler = fehler + 1
End If
End Sub
Bei diesem Punkt weiß ich nicht weiter :
Also Fragen-Zähler um 1 erhöhen und Daten aus Sheet(1) zur nächsten Frage den Steuerelementen zuweisen analog zu der Initialize-Prozedur. Am Ende des Makros musst du dann noch die Farben der Optionsschaltflächen zurücksetzen und die "Weiter"-Schaltfläche deaktivieren.
Danke dir.
Anzeige
AW: OptionButton: farbliche Auswertung
08.12.2016 00:05:52
fcs
Hallo Markus,
lade deine Datei doch mit ggf. anonymisierten Beispiel-Daten hoch.
Ich hab keine Lust mich durch das Gewusel von Makros zu wühlen und ggf. Test-Daten nachzubauen.
LG
Franz
AW: OptionButton: farbliche Auswertung
08.12.2016 23:22:38
fcs
Hallo Markus,
hier deine Datei mit angepastem Makro "Quiz" und Anpassung/Ergänzung der Makros im Userform.
https://www.herber.de/bbs/user/109944.xlsm
Im Makro "Quiz" wird jetzt ein Datenarray mit den 5 Zeilennumern der Fragen per Zufallsgenerator gefüllt. Dann das Userform angezeigt.
Das Userform wird nur einmal gestartet und die Fragenliste innerhalb des Userforms abgearbeitet.
Die Schaltfläche "Bestätigen / Weiter" wechselt ihren Text.
Bei richtger Antwort --&gt "Weiter".
Bei Klick auf "Weiter" werden die nächste Frage geladen, die Options-Schaltflächen zurückgesetzt, und der Text der Schaltfläche auf "Bestätigen" geändert.
Um die Augen zu schonen hab ich die Schriftgröße für die Steuerelemente vergrößert.
Gruß
Franz
Anzeige
AW: OptionButton: farbliche Auswertung
08.12.2016 23:46:29
Markus
Hallo Franz,
echt überragend - sieht super aus :)
Vielen Dank!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige