indien alle vinkjes uit zijn dan....

Status
Niet open voor verdere reacties.

jajajajanneke

Gebruiker
Lid geworden
16 jan 2008
Berichten
58
Hoi,

Ik probeer een code te verzinnen om een opdracht uit te laten voeren als alle checkboxes (eventueel in een groep) uit (FALSE) zijn.
Ik heb dit bedacht:

Sub Vinkjes uit()

If Array("CheckBox414b", "CheckBox414c", "CheckBox414d", "CheckBox414e", "CheckBox414bf").Value = False Then
MsgBox "gelukt"
Else: MsgBox "mislukt"

End If

End Sub


Maar dat werkt dus niet. Ik weet niet hoe ik ze kan groeperen. Voor zover ik weet moet je voor elke checkbox een aparte private sub maken.
Ik heb wel al private subs gemaakt om een opdracht uit te voeren als ze (individueel) aan staan (TRUE) maar dan werken ze allemaal individueel maar wat ik nu wil doen, moet alleen uitgevoerd worden als ze ALLEMAAL FALSE zijn.

(in mijn uiteindelijke bestand staan overigens veel meer dan 5 checkboxes)

Wie o wie kan mijn helpen?

Alvast bedankt!
 
Ik zou er zoiets van maken:


Code:
Dim Mislukt as Boolean

Mislukt = True
If Not Checkbox14b.Value Then
    If Not Checkbox14c.Value Then
        If Not Checkbox14d.Value Then
            If Not Checkbox414d.Value Then
                If Not Checkbox414e.Value Then
                    If Not Checkbox14bf.Value Then
                        Mislukt = False
                    End If
                End If
             End If
        End If
    End If
End If

If Mislukt Then
    Msgbox "Mislukt"
Else
    Msgbox "Gelukt"
End If

Maar misschien dat dat met veel meer checkboxes wat lastig is.
 
Laatst bewerkt:
Code:
Private Function ControlsCount()
    ControlsCount = 0
    For Each Ctl In Me.Controls
        If TypeOf Ctl Is MSForms.CheckBox Then
            If Ctl Then nr = nr + 1
        End If
    Next
    ControlsCount = nr
End Function
 
Bedankt voor jullie reacties.
De optie van edmoor snap ik maar toch krijg ik 'm niet werkend.
De optie van Warme Bakkertje snap ik niet, om dat te kunnen snappen moet ik echt nog véél meer leren en als ik het niet begrijp wil ik 't liever niet gebruiken in een bestand dat ook door mijn collega's begrepen moet worden...

Ik heb er nu al heel wat tijd in gestoken om het voor elkaar te krijgen maar ik geef het op. Het is ook geen noodzaak maar het was wel 'mooier' geweest... maarja.

Toch bedankt voor jullie hulp!
 
Je zult eerst moeten vertellen wat voor soort vinkjes dit zijn (formuliervinken of activeX vinken)

Code:
sub snb()
  msgbox activesheet.checkboxes.count
  msgbox activesheet.Oleobjects.count
end sub
 
Het zijn activex vinkjes (denk ik... sorry, ik ben een beginnende vba-er) want ik heb in vba geen formulier aangemaakt.
en dan nog een toelichting: ik wil een bepaald tabblad verbergen als al de vinkjes uit staan (ik had als voorbeeld een MsgBox genomen)
Ik zat met de oplossing van edmoor al in de knopp in welke 'soort' ik de sub moet zetten, in een ' change' of in een module... of iets anders.

Ik heb echt maar een basis cursusje gehad waarbij de meeste aandacht uitging naar modules... ik probeer mezelf meer te leren maar dat is nog niet zo makkelijk :(
 
Heb je mijn macro gedraaid ? en plaats svp je bestand.
 
Ha snb

Nee jouw macro heb ik niet geprobeerd omdat dat vba-taal is die ik nog niet ken en ik wel graag wil snappen wat ik doe.
Hierbij het (nagenoeg) lege formulier waar ik het voor nodig heb.
De vinkjes in kolom Q is waar het om gaat (deze worden zichtbaar als er in kolom B iets wordt ingevuld). als er één of meerdere aanstaan moet tabblad "STAFFELS" zichtbaar worden en als ze allemaal uit staan moet dat tabblad verborgen worden.

Alvast bedankt voor de moeite.

Bekijk bijlage formulier W.I.P. V10.rar
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan