When I run the check box1 change event (starting with all the boxes
unticked), it checks the first one then doesn't change the others, I don't
get why it doesn't work
M
"Per Jessen" <(E-Mail Removed)> wrote in message
news:%(E-Mail Removed)...
> Hi
>
> Two things:
>
> In chkHeadAll_Change(), test if chkHeadAll is true, and if it is set all
> years true, else do nothing.
>
> In each year change sub, you should only check on the current checkbox:
>
> If Not chkHeadY0.Value Then chkHeadAll.Value = False
>
>
> See my example below:
>
> Private Sub CheckBox1_change()
> If Me.CheckBox1 = True Then
> Me.CheckBox2.Value = True
> Me.CheckBox3.Value = True
> Me.CheckBox4.Value = True
> End If
> End Sub
>
> Private Sub CheckBox2_change()
> If Me.CheckBox2 And Me.CheckBox3 And Me.CheckBox4 Then Me.CheckBox1 = True
> If Not Me.CheckBox2 Then Me.CheckBox1 = False
> End Sub
>
> Private Sub CheckBox3_change()
> If Me.CheckBox2 And Me.CheckBox3 And Me.CheckBox4 Then Me.CheckBox1 = True
> If Not Me.CheckBox3 Then Me.CheckBox1 = False
> End Sub
>
> Private Sub CheckBox4_change()
> If Me.CheckBox2 And Me.CheckBox3 And Me.CheckBox4 Then Me.CheckBox1 = True
> If Not Me.CheckBox4 Then Me.CheckBox1 = False
> End Sub
>
> Hopes this helps.
> ..
> Per
>
> "Michelle" <(E-Mail Removed)> skrev i meddelelsen
> news:B7CB2858-6C92-423B-90DA-(E-Mail Removed)...
>> Hello, I have a userform with checkboxes for each of four years (Y0, Y1,
>> Y2 & Y3)
>> I want to be able to tick them all by ticking the 'tick-all' checkbox
>>
>> Similarly, if I deselect any of them the 'tick-all' box should be
>> automatically unchecked
>> and if I tick them all manually, the 'tick-all' box should be
>> automatically checked
>>
>> I have seen this setup before - so I know it's possible.
>>
>> My problem is that the event procedures are all triggering each other and
>> so it's a bit of a mess.
>>
>> I've tried EnableEvents = false, but it doesn't do what I want
>>
>> A sample of my code is below, but does anyone know a way to make it work?
>> please?
>>
>> '===========================
>> Private Sub chkHeadAll_Change()
>> Application.EnableEvents = False
>> chkHeadY0.Value = chkHeadAll.Value
>> chkHeadY1.Value = chkHeadAll.Value
>> chkHeadY2.Value = chkHeadAll.Value
>> chkHeadY3.Value = chkHeadAll.Value
>> Application.EnableEvents = True
>> End Sub
>>
>> Private Sub chkHeadY0_Change()
>> Application.EnableEvents = False
>> If chkHeadY0.Value And chkHeadY1.Value And chkHeadY2.Value And
>> chkHeadY3.Value Then chkHeadAll.Value = True
>> If Not chkHeadY0.Value Or Not chkHeadY1.Value Or Not chkHeadY2.Value
>> Or Not chkHeadY3.Value Then chkHeadAll.Value = False
>> Application.EnableEvents = True
>> End Sub
>>
>> Private Sub chkHeadY1_Change()
>> Application.EnableEvents = False
>> If chkHeadY0.Value And chkHeadY1.Value And chkHeadY2.Value And
>> chkHeadY3.Value Then chkHeadAll.Value = True
>> If Not chkHeadY0.Value Or Not chkHeadY1.Value Or Not chkHeadY2.Value
>> Or Not chkHeadY3.Value Then chkHeadAll.Value = False
>> Application.EnableEvents = True
>> End Sub
>> '===========================
>>
>> Thanks
>>
>>
>> M
>
|