ja/neen chart

Status
Niet open voor verdere reacties.

Samet1805

Gebruiker
Lid geworden
16 mrt 2017
Berichten
11
Beste

Ik zou graag een ja/neen chart willen programmeren in vba word.

dus als ik op een knop druk, krijg ik een ja/neen vraag. afhankelkijk van mijn antwoord moet ik dan vraag B of C krijgen. afhankelijk van mijn antwoord bij B of C moet ik vraag D of E krijgen,....

hoe doe ik dit aub?
Wat ik zelf al heb

Private Sub CommandButton1_Click()

tekst = "vraag1?"
knoppen = vbYesNo
antwoord = MsgBox(tekst, knoppen)

If antwoord = vbYes Then
CheckBox1H = True

tekst = "vraag2
knoppen = vbYesNo
antwoord = MsgBox(tekst, knoppen)

Else

tekst = "vraag3
knoppen = vbYesNo
antwoord = MsgBox(tekst, knoppen)

End If
End Sub

maar ik weet niet hoe het verder moet.
Kan iemand mij helpen aub?
 
Welkom bij HelpMij!
Blijkbaar heb je al een documentje, dus dat kun je veel beter posten dan alleen de code, die je overigens veel beter kan opmaken met de CODE knop (knop #) zodat de code netjes leesbaar is. Maar liefst dus het document erbij. Dan zul je ook zien dat je code veel makkelijker kan.
 
Beste

Allereerst bedankt voor uw reactive.

Bestand kan ik niet upluaden, maar in bijlage een printscreen.

Bedoeling is dat ik 14 lijnen heb. voor elke lijn heb ik een cmdbutton gezet.
Als ik op een button druk krijg ik een resum van vraen waarop ik ja of neen moet antwoorden.
Dezelfde vragen komen terug bij elke lijn.

ondertussen heb ik een ander code. maar weet niet of dit wel de ideale oplossing is.

Code:
Private Sub CommandButton1_Click()

tekst = "vraag1"
knoppen = vbYesNo
antwoord = MsgBox(tekst, knoppen)

    If antwoord = vbYes Then GoTo line1 Else
    GoTo Line2
    
 
line1:
    tekst = "vraag2"
    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
        If antwoord = vbYes Then GoTo Line3 Else
        GoTo Line4
    
    
Line2:
    tekst = "vraag3"
    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
    
Line3:
    tekst = "vraag4"
    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
        If antwoord = vbYes Then GoTo Line6 Else
        GoTo Line7
            
    
Line4:
    tekst = "vraag5"
    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
        If antwoord = vbYes Then GoTo Line3 Else
        GoTo Line5
        
Line5:
    tekst = "vraag6"    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
Line6:
    tekst = "oplossing1"
    antwoord = MsgBox(tekst)
        If antwoord = vbOK Then GoTo Lastline
             
Line7:
    tekst = "vraag7"
    knoppen = vbYesNo
    antwoord = MsgBox(tekst, knoppen)
    
Lastline:
End Sub
 

Bijlagen

  • Knipsel.PNG
    Knipsel.PNG
    4,5 KB · Weergaven: 29
Aan plaatjes hebben we niks, daar kunnen we geen code aan hangen of controleren. We zijn uiteraard niet geïnteresseerd in de bedrijfsdata, noch in een vollledig uitgewerkt document. Maak een dummy voorbeeldje (hoeven geen 14 knoppen/selectievakjes te zijn) waarin we de situatie kunnen nabootsen, dat is voor ons genoeg. Ik neem tenminste aan dat jij ook vindt dat wij onze tijd beter kunnen steken in het zoeken naar een oplossing, dan in het nabouwen van de situatie :).
 
Laten we ook nog eens naar je code kijken, want, behalve dat die veel korter kan, zit daar ook weinig logica in. Ik zal hem eerst even opnieuw laten zien, dan snap je hopelijk wat ik bedoel.
Code:
Private Sub CommandButton1_Click()

    If MsgBox("vraag1", vbYesNo) = vbYes Then GoTo line1 Else: GoTo Line2
line1:
    If MsgBox("vraag2", vbYesNo) = vbYes Then GoTo Line3 Else: GoTo Line4
Line2:
    MsgBox "vraag3", vbYesNo
Line3:
    If MsgBox("vraag4", vbYesNo) = vbYes Then GoTo Line6 Else: GoTo Line7
Line4:
    If MsgBox("vraag5", vbYesNo) = vbYes Then GoTo Line3 Else: GoTo Line5
Line5:
    MsgBox "vraag6", vbYesNo
Line6:
    If MsgBox("oplossing1", vbOKCancel) = vbOK Then GoTo Lastline
Line7:
    MsgBox "vraag7", vbYesNo
    
Lastline:
End Sub

Zoals je ziet kun je al je codeblokjes makkelijk vervangen door één regel. Maar dat is het probleem niet: je vult in Line2, Line5 en Line7 drie keer dezelfde variabele met een waarde uit de Msgbox, maar je doet er verder niks mee. Waarom dus? De code wordt uitgevoerd, de msgbox in Line2 verschijnt, je klikt ergens op (boeit niet waarop) en je gaat gewoon verder met de volgende regel. Ergo: hier kan (net als bij de rest dus) de variabele gewoon weg. Maar dan nog: geen idee wat de code nu allemaal zou moeten doen!
 
Ik weet niet wat je gedaan hebt, maar hij is nu helemaal niet te openen. Ook niet als ik de extensie verander in docm. Maak er anders een zipje van, dat kan wel altijd. Overigens mag een docm tegenwoordig ook wel van HelpMij, dus helemaal snappen doe ik het niet :).
 
Beste

In bijlage het document met de code die ik van u heb gekregen. het werkt prima.

Nu zou ik nog willen dat de checkboxen afhankelijk van de antwoorden aangevinkt worden (elk lijn apart).

Als ik elke button apart programmer is dit simpel. Maar hoe doe ik dit met de code van u? of moet ik de code onder elke button plaatsen?
 

Bijlagen

  • help mij - kopie.docm
    146,2 KB · Weergaven: 29
In je document doen de selectievakjes niks en de knop ook niet; daar zit in ieder geval nergens code achter. En tekst staat er ook al niet in, dus hoe moeten we nu testen of het werkt? Maak een realistisch voorbeeld waarin we wat kunnen uitzoeken.
 
Beste

Blijkbaar iets misgelopen. Zie bijlage aub.

Ik heb ondertussen een Cancel knop bijgezet. Maar krijg dit ook niet geprogrammeerd.
 

Bijlagen

  • help mij - kopie.docm
    139,6 KB · Weergaven: 45
Maar wat wíl je nu precies met deze knop/code? Want er gebeurt dus helemaal niks... Ja, hij loopt door de vragen en antwoorden heen, maar verder?
De Cancel optie moet je natuurlijk wel afvangen, anders heb je inderdaad niks aan die optie. Krijg je iets als:
Code:
    Select Case MsgBox("vraag1", vbYesNoCancel)
        Case vbYes
            GoTo line13
        Case vbNo
            GoTo Line2
        Case vbCancel
            Exit Sub
    End Select
line1:
    Select Case MsgBox("vraag2", vbYesNoCancel)
        Case vbYes
            GoTo Line3
        Case vbNo
            GoTo Line4
        Case vbCancel
            Exit Sub
    End Select
Line2:
    Select Case MsgBox("vraag3", vbYesNoCancel)
        Case vbYes
            GoTo Line3
        Case vbNo
            GoTo Line4
        Case vbCancel
            Exit Sub
    End Select
En zo verder. Hoe meer knoppen, hoe meer opties je moet uitvragen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan