make a shape a toggle

S

Spencer Hutton

i have a shape on a worksheet named "Oval 1"
i want to use the shape as a toggle button to change its color. a macro
runs when it is clicked:
If Range("A1") = False Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 65
Range("A1") = True
Exit Sub
End If

If Range("A1") = True Then
ActiveSheet.Shapes("Oval 1").Fill.ForeColor.SchemeColor = 47
Range("A1") = False
Exit Sub
End If

the problem i am running into is that if you click the shape too fast, it
stays the same color, but eventually changes if you wait a second. is there
a better way to set it up like this so this problem doesn't happen?
 
N

Norman Jones

Hi Spencer,

Assuming that it is not mandatory to use the value of cell A1, I simplified
your macro somewhat:

Sub sTester04()
With ActiveSheet.Shapes("Oval 1").Fill.ForeColor
.SchemeColor = IIf(.SchemeColor = 65, 47, 65)
End With
End Sub

Testing this, I could not reproduce your experienced behaviour.

When you "click the shape too fast", are you sure that you are not double
(or treble!) clicking the oval. If this were the case, the oval would go
through 2. 3 ...color changes with concomitant flicker and a noticeable
delay while the screen repaints.
 
N

Norman Jones

Hi Spencer,

After making my post i had an idea - hence my follow up. I then got called
away, In the event the idea came to naught.

So my post stands, except to say that in testing I used different color
indexes (3 and 5) because there only color indexes 1 to 56.
 

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