• 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.

Bij keuze OptionButton worden de geselecteerde Checkboxes gebundeld

Status
Niet open voor verdere reacties.

tijmen_4real

Gebruiker
Lid geworden
20 apr 2005
Berichten
338
Goedemorgen :) ,

Ik heb een tabblad met hierop twee OptionButtons: (bijlage, regel 21: klant levert aan)

OptionButton 1 = keuze JA
OptionButton 2 = keuze NEE

Wanneer 1 gekozen wordt, wordt een extra regel getoond met 3 Checkboxes:

Checkbox 1 = keuze Grondstof
Checkbox 2 = keuze Verpakking
Checkbox 3 = keuze Emballage

Van de geselecteerde OptionButton1 wil ik een samenvatting (String?) van de hierbij geselecteerde Checkboxes op tabblad 2 tonen
Dus bij JA, bijvoorbeeld de tekst "Ja, grondstof en verpakking" (wanneer checkbox 1 en 2 gevinkt zijn)
Nu weet ik even niet hoe je de geselecteerde Checkboxes als waarde (text) kan opslaan in een (tijdelijke) variabele, om deze op tabblad 2 samen te vatten.

Hulp is van harte welkom. Bekijk bijlage intake-formulier.xlsm
Bij voorbaat dank en met vriendelijke groet,

Tijmen
 
Laatst bewerkt:
Kijk hier eens naar.
De code kan extreem veel korter maar dit is makkelijker te begrijpen.
Code:
' --------- Keuzerondjes klant heeft informatie op te sturen -> Fase 2 ---------
Private Sub OptionButton63_Click()
If CheckBox36.Value = True And CheckBox37.Value = True And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof, Verpakking en Emballage"
ElseIf CheckBox36.Value = True And CheckBox37.Value = True And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof en Verpakking"
ElseIf CheckBox36.Value = True And CheckBox37.Value = False And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof"
ElseIf CheckBox36.Value = True And CheckBox37.Value = False And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof en Emballage"
ElseIf CheckBox36.Value = False And CheckBox37.Value = True And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Verpakking en Emballage"
ElseIf CheckBox36.Value = False And CheckBox37.Value = True And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Verpakking"
ElseIf CheckBox36.Value = False And CheckBox37.Value = False And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Emballage"
Else
    MsgBox "wat levert de klant aan"
End If
    Sheets("Fase 2 - Samenvatting AS").Rows("19").EntireRow.RowHeight = 45
End Sub
 
Bedankt! De basis werkt goed, alleen moet de OptionButton63 na het klikken van de Checkbox(es) eerst "uit en aan" gezet worden (andere selecteren en dan weer terug), voordat deze de data doorvoert naar het tweede tabblad....?
 
Het kan ook veel beter.
Gezien de bestaande code in VBA had ik gedacht dat je er zelf met wat aanpassingen hier en daar wel uit zou komen.

Maar goed. Zet de blauwe regels er eens bij!

Code:
[COLOR="#0000FF"]Private Sub CheckBox36_Click()
Call OptionButton63_Click
End Sub
Private Sub CheckBox37_Click()
Call OptionButton63_Click
End Sub
Private Sub CheckBox38_Click()
Call OptionButton63_Click
End Sub[/COLOR]
' --------- Keuzerondjes klant heeft informatie op te sturen -> Fase 2 ---------
Private Sub OptionButton63_Click()
If CheckBox36.Value = True And CheckBox37.Value = True And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof, Verpakking en Emballage"
ElseIf CheckBox36.Value = True And CheckBox37.Value = True And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof en Verpakking"
ElseIf CheckBox36.Value = True And CheckBox37.Value = False And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof"
ElseIf CheckBox36.Value = True And CheckBox37.Value = False And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Grondstof en Emballage"
ElseIf CheckBox36.Value = False And CheckBox37.Value = True And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Verpakking en Emballage"
ElseIf CheckBox36.Value = False And CheckBox37.Value = True And CheckBox38.Value = False Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Verpakking"
ElseIf CheckBox36.Value = False And CheckBox37.Value = False And CheckBox38.Value = True Then
    Sheets("Fase 2 - Samenvatting AS").Range("B19").Value = "Ja, Emballage"
Else
    MsgBox "wat levert de klant aan"
End If
    Sheets("Fase 2 - Samenvatting AS").Rows("19").EntireRow.RowHeight = 45
End Sub
 
Veelal is het knip en plak werk van vorige projecten. Ik leer steeds iets bij.
Maar je hulp is in dit geval meer dan welkom: hartelijk dank!
 
Nu wil ik aanvullend, op een ander tabblad, enkel Checkboxes gebruiken, die zonder de regeling van een OptionButton werken:
Code:
' --------- Keuzerondjes speciale eisen aan grondstoffen -> Fase 3 ---------
If CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 27
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Lastig te verwerken, deeltjesgrootte en contaminanten"
    MsgBox "alledrie"
ElseIf CheckBox1.Value = True And CheckBox2.Value = True And CheckBox3.Value = False Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 27
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Lastig te verwerken en deeltjesgrootte"
ElseIf CheckBox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = False Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 15
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Deeltjesgrootte"
ElseIf CheckBox1.Value = True And CheckBox2.Value = False And CheckBox3.Value = True Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 27
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Deeltjesgrootte en contaminanten"
ElseIf CheckBox1.Value = False And CheckBox2.Value = True And CheckBox3.Value = True Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 27
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Lastig te verwerken en contaminanten"
ElseIf CheckBox1.Value = False And CheckBox2.Value = True And CheckBox3.Value = False Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 27
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Lastig te verwerken"
ElseIf CheckBox1.Value = False And CheckBox2.Value = False And CheckBox3.Value = True Then
    Sheets("Fase 3 - Samenvatting").Rows("31").EntireRow.RowHeight = 15
    Sheets("Fase 3 - Samenvatting").Range("B31").Value = "Contaminanten"
End If

De code is zo goed als gelijk aan voorgaande, maar dan zonder deze in een SUB te stoppen.
Dit lijkt dan ook het probleem, want het werkt niet met bovenstaande code.
Is het nu zo dat de SUB een willekeurige naam mag hebben, of moet deze gekoppeld zijn aan een functie?
Of kan ik deze if-else statement laten loopen (checken) zonder gebruik van een SUB?
 
De code moet altijd ergens in staan.
Als het niet achter een button mag zoals bijvoorbeeld:
Code:
OptionButton64_Click()
'code hier
End Sub
dan is het wel achter het werkblad zelf, bijvoorbeeld:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'code hier
End Sub
Of zelfs achter het gehele bestand, bijvoorbeeld:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'code hier
End Sub

End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan