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

checkboxen van group nakijken bij afvinken

Status
Niet open voor verdere reacties.

bjornesto

Gebruiker
Lid geworden
16 apr 2012
Berichten
201
in bijlage heb ik een voorbeeld bestandje

Dit werkt al gedeeltelijk maar nog niet helemaal heb een deel van de code al kunnen maken maar nog niet helemaal

Ik heb drie keuzes (keuze 1, keuze 2, keuze 3)
Als je die aanvinkt (meer dan 1 keuze is mogelijk) Dan gaat hij rijen die verborgen zijn tevoorschijn brengen (bij de drie keuzemogelijkheden zijn het dezelfde rijen die tevoorschijn komen)

Nu zou ik graag hebben dat als je je vergist hebt en je 1 van de keuzemogelijkheden afvinkt. Hij eerst kijkt of er nog andere checkboxen aangevinkt zijn van keuze 1 of keuze 2 of keuze 3. Is dat het geval moet hij de rijen niet verbergen. Als alle keuzemogelijkheden wel afgevinkt zijn, dan pas mag hij de rijen verbergen.

Bekijk bijlage test group1.xlsm

Code:
Private Sub CheckBox24_Click()
'om checkboxen te verbergen volgende code is van toepassing
On Error GoTo earlyexit
If CheckBox24.Value = True Then
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoTrue
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = False
Else
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoFalse
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = True
End If
earlyexit:
End Sub

Private Sub CheckBox25_Click()
'om checkboxen te verbergen volgende code is van toepassing
On Error GoTo earlyexit
If CheckBox25.Value = True Then
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoTrue
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = False
Else
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoFalse
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = True
End If
earlyexit:
End Sub

Private Sub CheckBox26_Click()
'om checkboxen te verbergen volgende code is van toepassing
On Error GoTo earlyexit
If CheckBox26.Value = True Then
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoTrue
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = False
Else
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = msoFalse
    '// Omit below if you don't need to hide the rows
    Rows("20:25").EntireRow.Hidden = True
End If
earlyexit:
End Sub
 
Ik zou daar iets als dit van maken:
Code:
Private Sub CheckBox24_Click()
     Call RegelsEnGroep(CheckBox24.Value)
End Sub

Private Sub CheckBox25_Click()
     Call RegelsEnGroep(CheckBox25.Value)
End Sub

Private Sub CheckBox26_Click()
     Call RegelsEnGroep(CheckBox26.Value)
End Sub

Sub RegelsEnGroep(ByRef sts As Boolean)
    ActiveSheet.Shapes.Range(Array("Group 3")).Visible = sts
    Rows("20:25").EntireRow.Hidden = False
    If Not CheckBox24 And Not CheckBox25 And Not CheckBox26 and Not sts Then
        Rows("20:25").EntireRow.Hidden = True
    End If
End Sub
 
Laatst bewerkt:
Beste

Ik heb de code van u vervangen maar het blijft hetzelfde doen.

als je bij 2 of meer keuzevakjes 1 uitvinkt dan verbergt hij deze nog steeds.

Rijen mogen alleen verborgen worden als alle keuzevakjes uitgevinkt staan.

Ik ga nog is wat verder op het internet zoeken ook

alvast bedankt voor u moeite.
 
heb het hier nog is getest met bijgestuurde file.

Hij verbergt ze telkens als je er een uitvinkt terwijl er nog andere keuzevakjes bovenaan aangevinkt staan

Heb excel 2010
 
Het staat los van de Excel versie.

Hier worden de regels 20 t/m 25 worden pas verborgen als zowel Keuze 1, keuze 2 en keuze 3 zijn uitgevinkt.
In je codevoorbeeld staat dit:
Rows("20:25").EntireRow.Hidden = True

Dus ik ging er van uit dat je de regels bedoelde.
Of bedoel je soms de 2e groep met selectievakjes? Die kan je niet verbergen door de regels te verbergen.
 
Laatst bewerkt:
In het geval dat de tweede groep met selectievakjes moet worden verborgen of zichtbaar gemaakt is het nog eenvoudiger:
Code:
Private Sub CheckBox24_Click()
     Call RegelsEnGroep
End Sub

Private Sub CheckBox25_Click()
     Call RegelsEnGroep
End Sub

Private Sub CheckBox26_Click()
     Call RegelsEnGroep
End Sub

Sub RegelsEnGroep()
    If Not CheckBox24 And Not CheckBox25 And Not CheckBox26 Then
        ActiveSheet.Shapes.Range(Array("Group 3")).Visible = False
    Else
        ActiveSheet.Shapes.Range(Array("Group 3")).Visible = True
    End If
End Sub
 
Dit is wat ik zocht :)

Als bovenste groep er minimaal 1 is aangevinkt hij de 2de groep moest blijven staan

Als ze allemaal uitgevinkt waren dan moest het pas verborgen worden

Hartelijk dank
 
Ok. Die selectievakjes zijn aparte objecten en die kan je niet verbergen door de onderliggende regels te verbergen. Dat was dus de spraakverwarring.
 
Heb u code ook een beetje moeten aanpassen

Hierdoor kan je checkboxen aanmaken en ze dan verbergen alsook hun rijen waar die ze op staan.

Dit werkt bij mij met active x checkboxen die ik in een group gezet heb

dan kan je die code dat jij gemaakt hebt toepassen

Code:
Sub RegelsEnGroep()
'Computer kijkt of er andere checkboxen aangevinkt zijn en dan regels met checkboxen verbergen alsook de rijen
'Groep(en) of checkbox(en) moet wel volgende eigenschappen hebben
'Bij size & properties --> properties --> move but don't seize with cells
'kijkt of checkboxen vermeld hieronder aangevinkt zijn
    If Not CheckBox277 And Not CheckBox278 And Not CheckBox279 And Not CheckBox280 And Not CheckBox281 And Not CheckBox282 Then
    
'Indien bovenvermelde checkboxen allemaal uitgevinkt zijn gaat hij de groep(en) verbergen
        ActiveSheet.Shapes.Range(Array("Group 7", "Group 130")).Visible = False
'Verbergt de rijen hieronder vermeld
        Rows("85:99").EntireRow.Hidden = True
    Else
'Checkbox(en zijn aangevinkt laat hij onderstaande groepen staan
        ActiveSheet.Shapes.Range(Array("Group 7", "Group 130")).Visible = True
'Laat de rijen staan
        Rows("85:99").EntireRow.Hidden = False
    End If
End Sub
 
Voorbeeldcode is nooit exact wat je nodig hebt en zal je naar je eigen omgeving moeten aanpassen. Het gaat er maar om dat je begrijpt wat de bedoeling is, en dat is kennelijk het geval :)

Tip:
Hou voor de leesbaarheid de commentaar regels op dezelfde wijze ingesprongen als de bijbehorende code.
De And Not controles mag je over meerdere regels verspreiden, tevens voor de leesbaarheid en het gemak van aanpassen en/of toevoegen.
Code:
Sub RegelsEnGroep()
    'Computer kijkt of er andere checkboxen aangevinkt zijn en dan regels met
    'checkboxen verbergen alsook de rijen
    'Groep(en) of checkbox(en) moet wel volgende eigenschappen hebben
    'Bij size & properties --> properties --> move but don't size with cells

    'kijkt of checkboxen vermeld hieronder aangevinkt zijn
    If Not CheckBox277 And _
       Not CheckBox278 And _
       Not CheckBox279 And _
       Not CheckBox280 And _
       Not CheckBox281 And _
       Not CheckBox282 Then
    
        'Indien bovenvermelde checkboxen allemaal uitgevinkt zijn gaat hij de groep(en) verbergen
        ActiveSheet.Shapes.Range(Array("Group 7", "Group 130")).Visible = False
        'Verbergt de rijen hieronder vermeld
        Rows("85:99").EntireRow.Hidden = True
    Else
        'Checkbox(en zijn aangevinkt laat hij onderstaande groepen staan
        ActiveSheet.Shapes.Range(Array("Group 7", "Group 130")).Visible = True
        'Laat de rijen staan
        Rows("85:99").EntireRow.Hidden = False
    End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan