• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Keuzerondjes blokkeren na input.

Status
Niet open voor verdere reacties.

Zerty

Gebruiker
Lid geworden
12 mei 2015
Berichten
110
Ik ben een Quiz in een Userform aan het aanpassen maar er zijn een tweetal struikelblokken.

1-Er is telkens een vraag met 4 keuze-rondjes, zodra een keuze gemaakt wordt zou het
niet meer mogelijk mogen zijn een andere keuze te maken, wat nu niet het geval is.

2-Indien het juiste antwoord gekozen wordt zou de melding 'GOED' moeten verschijnen,
nu lukt het pas nadat op de knop 'Volgende vraag' gedrukt wordt.
 

Bijlagen

  • 4KeuzelKwis.xlsm
    43,6 KB · Weergaven: 28
1-Er is telkens een vraag met 4 keuze-rondjes, zodra een keuze gemaakt wordt zou het niet meer mogelijk mogen zijn een andere keuze te maken, wat nu niet het geval is.
Dat kan je zo doen met een Frame met Optionbuttons.
Bij je UserForm routine gebruik je dit
Code:
    Set sht = Sheets("Vragen")
    For i = 1 To 4
        Me("OptionButton" & i).Caption = sht.Cells(Counter, i + 1).Value
        If i = sht.Cells(Counter, 6).Value Then
            Me("OptionButton" & i).Tag = sht.Cells(Counter, 6).Value
        Else
            Me("OptionButton" & i).Tag = ""
        End If
    Next i

En het uitzetten doe je dan zo:
Code:
Private Sub OptionButton1_Click()
    Me.Frame1.Enabled = False
    If Me.OptionButton1.Caption <> "" Then
        Me.Status.Value = "Goed!"
    Else
        Me.Status.Value = Null
    End If
    Button.Enabled = True
End Sub

Private Sub OptionButton2_Click()
    Me.Frame1.Enabled = False
    If Me.OptionButton2.Tag <> "" Then
        Me.Status.Value = "Goed!"
    Else
        Me.Status.Value = ""
    End If
    Button.Enabled = True
End Sub

Private Sub OptionButton3_Click()
    Me.Frame1.Enabled = False
    If Me.OptionButton3.Tag <> "" Then
        Me.Status.Value = "Goed!"
    Else
        Me.Status.Value = Null
    End If
    Button.Enabled = True
End Sub

Private Sub OptionButton4_Click()
    Me.Frame1.Enabled = False
    If Me.OptionButton4.Tag <> "" Then
        Me.Status.Value = "Goed!"
    Else
        Me.Status.Value = Null
    End If
    Button.Enabled = True
End Sub
 
Ik heb je routine niet helemaal aangepast, dus er zitten nog wat eigenaardigheden in nu, maar die kun je zelf wel wegwerken.
 

Bijlagen

  • 4KeuzelKwis.xlsm
    29,5 KB · Weergaven: 23
Prachtig, dank je wel, zal er inderdaad verder mee kunnen.
Ik heb ondertussen uw eerste code gebruikt en dat ziet er eveneens beter uit,
ik krijg wel een foutmelding en weet niet direct hoe dat komt.
 

Bijlagen

  • 4KeuzelKwis 2.xlsm
    46 KB · Weergaven: 29
De code zit ook in het voorbeeldbestandje, en dat is iets beter uitgewerkt. Zit de fout daar ook in? Zo ja: welke fout?
 
Nee hoor, het werkt uitstekend.
Ben nog wat de lay-out aan het aanpassen.
Nogmaals hartelijk dank voor uw oplossing.
 
hier met een iets andere aanpak.
 

Bijlagen

  • 4KeuzelKwis (1).xlsm
    35,9 KB · Weergaven: 24
Waw, ziet er heel Pro uit, welbedankt voor deze :) :thumb:
 
Nu ook met de statusbalk aangepast.
 

Bijlagen

  • 4KeuzelKwis (1).xlsm
    37,1 KB · Weergaven: 19
Checkboxen kan ook met minder code
Code:
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]Private Sub answer1_Click()
  M_text 1
End Sub
Private Sub Answer2_Click()
  M_text 2
End Sub
Private Sub Answer3_Click()
  M_text 3
End Sub
Private Sub Answer4_Click()
  M_text 4
End Sub

Sub M_text(y)
  If Question = "" Then
    Me("Answer" & Format(y, "0")).Value = False
    Exit Sub
  End If[/FONT]
[FONT=Verdana,Arial,Tahoma,Calibri,Geneva,sans-serif]  For i = 1 To 4
    If i <> y Then Me("Answer" & Format(i, "0")).Visible = False
  Next
    
    antw.Value = y
    TextBox1.Value = IIf(antw.Value = jant.Value, TextBox1.Value + 1, TextBox1.Value)
    Label5.Caption = IIf(antw.Value = jant.Value, "Goed gedaan", "Helaas")
    Label5.BackColor = IIf(antw.Value = jant.Value, vbGreen, vbRed)
    Label5.Visible = True
    status.Width = TextBox1.Value * 30
End Sub[/FONT]
 
Een goede tip, waarvoor dank.
Dat zal ik zeker uitproberen.
 
De Quiz staat goed op punt nu en werkt naar behoren.
Alleen komen steeds dezelfde 10 vragen (van de 33) op het scherm.
De randomfunctie in kolom G doet het niet meer.
Ik vind de oplossing niet :eek:
 

Bijlagen

  • Kwis LDR 01.xlsm
    65,7 KB · Weergaven: 13
da's logisch er staat nergens in uw startcode dat er een andere selectie moet gebeuren

in het volgende he ik er een macro aan toegevoegd.
 

Bijlagen

  • Kwis LDR 01.xlsm
    43,2 KB · Weergaven: 19
Oei, ah daarom. Ik had blijkbaar te veel aan de code gesleuteld en zaken verwijdert of verkeerd aangepast.
Nogmaals hartelijk dank voor uw hulp. :thumb:
 
Ik zou obv van jouw eerste vraag eerst een wat kennis van VBA tot jou nemen. Als je het voorbeeld begrijpt zal je zelf de aan aanvullende vraag wel op kunnen lossen.
 

Bijlagen

  • Kwis LDR 01.xlsb
    33,2 KB · Weergaven: 23
Inderdaad, en trouwens een heel goede versie met minder code, waarvoor mijn oprechte dank :thumb:
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan