button name scope and Caption

C

cate

I have a main sheet that I replicate as 'what if' versions. There are
no collisions with any names on these copies since all code refers to
them in the context of the sheet.

Except for buttons and their attribute Caption.

There is one these buttons that has it's caption changed ('Show',
'Hide') but even within the context of the current sheet, it fails.

wS.Buttons("button_show_hide").Caption = "Hide"

What is REALLY strange is that the caption seems to be changing
somewhere, because the decision to Show or Hide is based on the
following. Again, this is successful:

StrComp(wS.Buttons("button_show_hide").Caption, "Hide")

The main sheet, from which all these 'What if's are copied, it's
button continues to work just fine. The caption toggles.

Anyone have an idea how to fix this?
 
D

Dave Peterson

Maybe your current sheet isn't what you expect. You didn't share how ws was
set.

This may help (or not!) you debug...

Option Explicit
Sub testme()

Dim ws As Worksheet
Dim BTN As Button

Set ws = Worksheets("SomeSheetNameHere")

For Each BTN In ws.Buttons
With BTN
MsgBox .Name & vbLf _
& .TopLeftCell.Address & vbLf _
& .Visible
End With
Next BTN

End Sub

You may even want to loop through the worksheets in the workbook, too:

Option Explicit
Sub testme2()

Dim ws As Worksheet
Dim BTN As Button

For Each ws In ActiveWorkbook.Worksheets
For Each BTN In ws.Buttons
With BTN
MsgBox .Parent.Name & vbLf _
& .Name & vbLf _
& .TopLeftCell.Address & vbLf _
& .Visible
End With
Next BTN
Next ws

End Sub
 

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