ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   make a shape a toggle (https://www.excelbanter.com/excel-programming/320776-make-shape-toggle.html)

Spencer Hutton[_4_]

make a shape a toggle
 
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?



Norman Jones

make a shape a toggle
 
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.

---
Regards,
Norman



"Spencer Hutton" wrote in message
. com...
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?





Norman Jones

make a shape a toggle
 
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.

---
Regards,
Norman




All times are GMT +1. The time now is 11:16 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com