CheckBox / Linked Cell Problem

J

Joyce

Hello,

I have Check Boxes (from the Control Toobox toolbar) in my worksheet. Some
of these are linked to cells so that I can write IF statements to see the
status of True or False.

My problem is that when the users click the Clear Form command button, the
tick marks are cleared from all check boxes, except for those that are linked
to a cell. Those ones have the grayed out ticked mark, even though the
Triple State property is False. Here is the part of the code that clears the
check boxes:

'Clear check boxes
With ActiveSheet
For Each Ctrl In .OLEObjects
If TypeName(Ctrl.Object) = "CheckBox" Then
Ctrl.Object.Value = False
End If
Next Ctrl
End With


Thanks.
 
D

Dave Peterson

I'm betting that your worksheet is protected and those linkedcells are locked.

You could try to unlock those linkedcells and test it again.

Maybe move the linked cells to a (hidden) sheet--or hide that column???
 
J

Joyce

Hi Dave,

Thanks for your response. The sheet is indeed protected and the linked
cells are unlocked and reside in a hidden column.

What happens is that the TRUE value simply gets cleared and the value in the
actual control property is removed - it doesn't display false - just nothing,
as though it was deleted.

Any other ideas?

Thanks very much.
 
D

Dave Peterson

First, your code worked fine for me in xl2003 with the linked cells unlocked
(with or without the sheet being protected).

But maybe you could change the linked cell to false instead (or too???).

Option Explicit
Sub testme()
Dim Ctrl As OLEObject
With ActiveSheet
For Each Ctrl In .OLEObjects
If TypeName(Ctrl.Object) = "CheckBox" Then
On Error Resume Next
.Range(Ctrl.LinkedCell).Value = False
On Error GoTo 0
Ctrl.Object.Value = False
End If
Next Ctrl
End With
End Sub
 
J

Joyce

Hi again,

I tried modifying the code, but it still removes the link (which I don't
want it to do) and also removes the Value. Instead of False, it seems to
just change the value from True to nothing.

This results in a Null status, where the check mark is grey.

I'm also using 2003. I'm puzzled as to why it wouldn't work for me, but
works for you.
 
J

Joyce

Hi again,

I just figured out the problem. I want the code available from all
worksheets, so placed it in a module. When I moved it to Workbook, it worked
fine.

Thanks for your help. I really appreciate it.
 
D

Dave Peterson

You changed the linkedcell itself.

The code I suggested changed the value in the linkedcell.
Hi again,

I tried modifying the code, but it still removes the link (which I don't
want it to do) and also removes the Value. Instead of False, it seems to
just change the value from True to nothing.

This results in a Null status, where the check mark is grey.

I'm also using 2003. I'm puzzled as to why it wouldn't work for me, but
works for you.
 
D

Dave Peterson

You code used the activesheet. I don't see how moving it to the ThisWorkbook
module would help (or harm) its execution.

I suspect a different problem--maybe a change you didn't share.
Hi again,

I just figured out the problem. I want the code available from all
worksheets, so placed it in a module. When I moved it to Workbook, it worked
fine.

Thanks for your help. I really appreciate it.
 
J

Joyce

You're absolutely right.

I tested it and am having the same problem.

It seems to be caused by the linked cell and protection. If the linked cell
is locked and the sheet unprotected, it works fine. Of course, if I protect
(which I want to do) and try to click the checkbox, I get an error message
because the linked cell is locked. If I unlock it, I can click the box on
and off, but when I run the code to clear the checkbox, it simply removes
both the link and the status, so ends up with the grayed out check (null).

Thanks for your help.
 
J

Joyce

I've put the linked cells on a separate unprotected worksheet, which seems to
do the trick.

Not sure what the conflict is when it's on the same sheet, but this is
workable solution.

Again, thanks very much for your time and assistance.
 
D

Dave Peterson

Any chance you have another macro (maybe an event macro) that runs and changes
the false to empty.

And I'd check that tiplestate property once more. It really sounds like it's
not false.

But you can do these as experiments--since you have a way that works.
I've put the linked cells on a separate unprotected worksheet, which seems to
do the trick.

Not sure what the conflict is when it's on the same sheet, but this is
workable solution.

Again, thanks very much for your time and assistance.
 
J

Joyce

Hi Dave,

No, I don't have another macro that runs and changes the false to empty.

On the check boxes that aren't linked, it works fine. It's the linked cell
that seems to cause the problem.

I've also checked the Triplestate property and it's still False. It's just
as though the True/False has been deleted in the Value property.

It seems to be when the sheet the linked cell resides on is protected it
causes the problem. Just not sure why.
 
D

Dave Peterson

Your original code worked fine for me (as I wrote before) using xl2003.

What version of excel are you using? (If you said, I forgot <vbg>.)
Hi Dave,

No, I don't have another macro that runs and changes the false to empty.

On the check boxes that aren't linked, it works fine. It's the linked cell
that seems to cause the problem.

I've also checked the Triplestate property and it's still False. It's just
as though the True/False has been deleted in the Value property.

It seems to be when the sheet the linked cell resides on is protected it
causes the problem. Just not sure why.
 
J

Joyce

I did mention it, but no worries :)

xl 2003. Tried it on 2 different computers, so I imagine it's something in
the file.
 
D

Dave Peterson

You've probably spent more time than you want on this--especially since you have
it working.

But can you try it on a brand new workbook?

If you don't want to, it's ok.
I did mention it, but no worries :)

xl 2003. Tried it on 2 different computers, so I imagine it's something in
the file.
<<snipped>>
 
J

Joyce

Hi Dave,

Yes, I had the same thought, so had tried it. But, had the same result.

Strange how it would work for you, but not for me...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top