• 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

Status
Niet open voor verdere reacties.

wieter

Terugkerende gebruiker
Lid geworden
26 jun 2009
Berichten
1.128
Is het mogelijk om de keuzerondjes onbereikbaar te maken, zolang er in N3 (op blad 1) geen naam is ingevuld?
Eventueel met een MsgBox: "Vul eerst je naam in a.u.b."

Bekijk bijlage 156323
 
Misschien alleen de vragen tonen, nadat je de naam hebt ingevuld.

Standaard staan de rijen van de vragen dan op verborgen.

Met een macro change event kun je deze laten verschijnen.

Met de macro kan ik je onvoldoende helpen.

Heb je hier vragen of opmerkingen over, laat het gewoon even weten.
 
Als er geen naam instaat worden de keuzerondjes verborgen, wel een naam worden ze zichtbaar gemaakt.
N3 zijn samengevoegde cellen die moet je los maken anders werkt het niet, als je macro's gebruikt is het zoiezo beter om geen samengevoegde cellen te gebruiken.
In jouw voorbeeld is het ook geen toevoeging want je kun de kolom breder maken zonder dat je beeld verandert.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N3")) Is Nothing Then
Sheets("Resultaat").Range("C2:C25,J2:J25").ClearContents
If Target.Value <> "" Then
For Each Shp In ActiveSheet.Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = True
End If
Next
Else
For Each Shp In ActiveSheet.Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = False
End If
Next
End If
End If
End Sub

Niels
 
Laatst bewerkt:
Hey Niels,
Dat zou een prachtige oplossing kunnen zijn,
maar jou code functioneert slechts in de ActiveSheet.
Ik dacht dit snel even aan te passen voor de 2 bladen in het bestand,
maar dat was mis gedacht!!!

Code:
For Each Shp In Sheets("Gezondheid en voeding", "Opvoeding en gedrag").Shapes

Zou je de code willen aanpassen voor de twee bladen?
Alvast bedankt
 
Je sheet naam klopt niet, waarom sheetnaam,sheetnaam?

aangepaste versie:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N3")) Is Nothing Then
Sheets("Resultaat").Range("C2:C25,J2:J25").ClearContents
If Target.Value <> "" Then
For Each Shp In ActiveSheet.Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = True
End If
Next
For Each Shp In Sheets("Opvoeding en gedrag").Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = True
End If
Next
Else
For Each Shp In Sheets("Opvoeding en gedrag").Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = False
End If
Next
For Each Shp In ActiveSheet.Shapes
If Shp.FormControlType = xlOptionButton Then
Shp.Visible = False
End If
Next
End If
End If
End Sub

Niels
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myshape As Shape
    For Each myshape In ActiveSheet.Shapes
 
        If Range("N3") = "" Then myshape.Visible = False
        If Not Range("N3") = "" Then myshape.Visible = True

    Next myshape

End Sub
 
Heb je nog meer sheets of zijn dit de enige 2?

Niels
 
@Pasan

Er staan meer shapes op het blad als alleen optionbuttons deze verberg je dan ook.
En je laat de macro bij elke verandering lopen.

Niels
 
Uiteindelijk zullen het 3 sheets zijn.
Maar als ik de aanpassing zie voor 2 sheets, denk ik de aanpassing voor 3 sheets zelf wel aan te kunnen.
Dank
 
Je zou ze dan niet zo hoeven te benoemen maar dan kun je (ga er wel vanuit dat het sheet 1 tm 3 is) het zo doen:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N3")) Is Nothing Then
Sheets("Resultaat").Range("C2:C25,J2:J25").ClearContents

If Target.Value <> "" Then
For i = 1 To 3
For Each Shp In Sheets(i).Shapes
If Shp.FormControlType = xlOptionButton Then Shp.Visible = True
Next
Next
Else
For i = 1 To 3
For Each Shp In Sheets(i).Shapes
If Shp.FormControlType = xlOptionButton Then Shp.Visible = False
Next
Next
End If
End If
End Sub

Niels
 
Bingo Niels !
Dat is het, de tabbladnaam is echt niet belangrijk.
Bedankt voor de oplossing.
 
Als het dat wel zou zijn kan het ook nog zo:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("N3")) Is Nothing Then
Sheets("Resultaat").Range("C2:C25,J2:J25").ClearContents
myarr = Array("Gezondheid en voeding", "Opvoeding en gedrag", "Resultaat")
If Target.Value <> "" Then
For i = 0 To 2
For Each Shp In Sheets(myarr(i)).Shapes
If Shp.FormControlType = xlOptionButton Then Shp.Visible = True
Next
Next
Else
For i = 0 To 2
For Each Shp In Sheets(myarr(i)).Shapes
If Shp.FormControlType = xlOptionButton Then Shp.Visible = False
Next
Next
End If
End If
End Sub

Niels
 
Ja, nu is het echt wel prima!!!
Nogmaals bedankt Niels
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan