msgbox met 3 knoppen

Status
Niet open voor verdere reacties.

dinge

Gebruiker
Lid geworden
11 nov 2016
Berichten
30
Goedendag

Ik ben nu al heel lang aan het zoeken hoe ik een msgbox kan maken waarvan de ja, nee en annuleren knop ieder een eigen functie hebben.
Misschien heb ik wel op een verkeerde manier gezocht, sorry dan.
Ik wil de msgbox namelijk verbouwen van 2 naar 3 knoppen.

De functies zouden moeten zijn:
"Ja" knop de deelnemer word ingeschreven op de LA afstand
"Nee" knop de deelnemer word ingeschreven op de KA afstand
"Annuleren"knop is geen actie als alleen afsluiten van msgbox.

Wat ik ook probeer, als ik op annuleren druk dan word de deelnemer toch op de KA afstand ingeschreven terwijl dit niet moet.
Als ik het voor elkaar krijg, dat wanneer ik op de annuleren knop druk ik uit de msgbox ga, gebeurt dit ook bij de Nee knop en de schutter word met de nee knop niet ingeschreven.
De code die gebruikt is, is de volgende:

'Afstand en categorie bepalen van de schutter
If MsgBox("Schiet deze schutter op de lange afstand?", vbYesNoCancel, "Afstand") = vbYes Then
Afstand = "LA"
If Leeftijd < 21 Then
Niveau = "J"
ElseIf Leeftijd < 50 Then
Niveau = "S"
ElseIf Leeftijd < 60 Then
Niveau = "M"
Else
Niveau = "V"
End If
Else
Afstand = "KA"
If Leeftijd < 16 Then
Niveau = "Je"
Else
Niveau = "De"
End If

If vbCancel Then Exit Sub

End If

Ik hoop dat het duidelijk is zo anders moet ik mijn bestandje verbouwen, omdat er nu namen e.d. in staan
 
Kijk eens naar dit:
Code:
Sub Vraag()
    Select Case MsgBox("Schiet deze schutter op de lange afstand?", vbYesNoCancel, "Afstand")
        Case vbYes:     YESgekozen
        Case vbNo:      NOgekozen
        Case vbCancel:  Exit Sub
    End Select
End Sub

Sub YESgekozen()
    MsgBox "Yes"
End Sub

Sub NOgekozen()
    MsgBox "No"
End Sub
 
Laatst bewerkt:
Als je al heel lang aan het zoeken bent dan weet je toch dat code tussen codetags moet en dat een voorbeeldbestand gewenst is?
 
Ik wil edmoor hartstikke bedanken om mij op de goede weg te brengen.
Ik heb de voorgestelde code wel wat moeten aanpassen maar de basis was gegeven.
Ik heb hem omgebouwd zoals hieronder en het werkt.

Select Case MsgBox("Schiet deze schutter op de lange afstand?", vbYesNoCancel, "Afstand")

Case vbYes
Afstand = "LA"
If Leeftijd < 21 Then
Niveau = "J"
ElseIf Leeftijd < 50 Then
Niveau = "S"
ElseIf Leeftijd < 60 Then
Niveau = "M"
Else
Niveau = "V"
End If
MsgBox "Schutter ingeschreven op lange afstand"

Case vbNo
Afstand = "KA"
If Leeftijd < 16 Then
Niveau = "Je"
Else
Niveau = "De"
End If
MsgBox "Schutter ingeschreven op korte afstand"

Case vbCancel: Exit Sub

End Select

Nogmaals dank je wel.
 
Laatst bewerkt:
Graag gedaan, maar toch een paar verbeterpuntjes.
Die Select Case mag je gewoon vaker gebruiken. Kijk ook eens naar de Iif opdracht:
Code:
Select Case MsgBox("Schiet deze schutter op de lange afstand?", vbYesNoCancel, "Afstand")
    Case vbYes
        Afstand = "LA"
        Select Case Leeftijd
            Case Is < 21: Niveau = "J"
            Case Is < 50: Niveau = "S"
            Case Is < 60: Niveau = "M"
            Case Else:    Niveau = "V"
        End Select
        MsgBox "Schutter ingeschreven op lange afstand"
    
    Case vbNo
        Afstand = "KA"
        Niveau = IIf(Leeftijd < 16, "Je", "De")
        MsgBox "Schutter ingeschreven op korte afstand"
    
    Case vbCancel: Exit Sub
End Select
 
Laatst bewerkt:
ik heb het veranderd naar de korte versie en dit voldoet ook aan mijn wensen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan