ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Shapes, Userform and Visible (https://www.excelbanter.com/excel-programming/330476-shapes-userform-visible.html)

Joel Mills

Shapes, Userform and Visible
 
I have 4 buttons assigned to a userform within a frame. I have four shapes
that are not visible, and want the usere to be able to select a button and
make one of the shapes visible. When I click any of the buttons the shape
becomes visible. But when i select two or more they all become visible.
below is the code for one of the buttons. How do I modify the code to only
allow for one shape to be visible upon slection of the button?

Joel Mills

Sub PLANNEDLegend()
ActiveSheet.Shapes("LEGEND PLANNED").Visible = True
End Sub



Vasant Nanavati

Shapes, Userform and Visible
 
You need to set the Visible property of all the other shapes to False.

--

Vasant

"Joel Mills" wrote in message
...
I have 4 buttons assigned to a userform within a frame. I have four

shapes
that are not visible, and want the usere to be able to select a button and
make one of the shapes visible. When I click any of the buttons the shape
becomes visible. But when i select two or more they all become visible.
below is the code for one of the buttons. How do I modify the code to

only
allow for one shape to be visible upon slection of the button?

Joel Mills

Sub PLANNEDLegend()
ActiveSheet.Shapes("LEGEND PLANNED").Visible = True
End Sub





Joel Mills

Shapes, Userform and Visible
 
Vasant thanks for your help. Below is the revised code incase others might
find it useful. I followed your advice and set each of the shapes where the
one I want to be visible true and all the others false.

Sub PLANNEDLegend()
ActiveSheet.Shapes("LEGEND PLANNED").Visible = True
ActiveSheet.Shapes("LEGEND PE").Visible = False
ActiveSheet.Shapes("LEGEND ELPE").Visible = False
ActiveSheet.Shapes("LEGEND ELE").Visible = False
End Sub


"Vasant Nanavati" <vasantn *AT* aol *DOT* com wrote in message
...
You need to set the Visible property of all the other shapes to False.

--

Vasant

"Joel Mills" wrote in message
...
I have 4 buttons assigned to a userform within a frame. I have four

shapes
that are not visible, and want the usere to be able to select a button
and
make one of the shapes visible. When I click any of the buttons the
shape
becomes visible. But when i select two or more they all become visible.
below is the code for one of the buttons. How do I modify the code to

only
allow for one shape to be visible upon slection of the button?

Joel Mills

Sub PLANNEDLegend()
ActiveSheet.Shapes("LEGEND PLANNED").Visible = True
End Sub







Nick Hebb

Shapes, Userform and Visible
 
You might think it's overkill, but I usually end up with a construct
like below. In the long run I find it's easier to debug and maintain.
It's especially true if you end up with a lot of conditionally visible
or enabled controls.

Const PLANNED_SHAPE As Integer = 1
Const PE_SHAPE As Integer = 2
Const ELPE_SHAPE As Integer = 3
Const ELE_SHAPE As Integer = 4

Sub Button1_Click()
ShowShape(PLANNED_SHAPE)
End Sub

Sub Button2_Click()
ShowShape(PE_SHAPE)
End Sub

Sub Button3_Click()
ShowShape(ELPE_SHAPE)
End Sub

Sub Button4_Click()
ShowShape(ELE_SHAPE)
End Sub

Sub ShowShape(ByVal id as Integer)
ActiveSheet.Shapes("LEGEND PLANNED").Visible = (PLANNED_SHAPE = id)
ActiveSheet.Shapes("LEGEND PE").Visible = (PE_SHAPE = id)
ActiveSheet.Shapes("LEGEND ELPE").Visible = (ELPE_SHAPE = id
ActiveSheet.Shapes("LEGEND ELE").Visible = (ELE_SHAPE = id)
End Sub


Joel Mills

Shapes, Userform and Visible
 
Thanks for the reply. I'm trying to teach myself VBA by writing a program
for myself and co-workers use. I appreciate the effort you placed in this
post. I'll try it out, and I am sure, that I can apply it or portions of it
in this project.

Joel Mills


"Nick Hebb" wrote in message
oups.com...
You might think it's overkill, but I usually end up with a construct
like below. In the long run I find it's easier to debug and maintain.
It's especially true if you end up with a lot of conditionally visible
or enabled controls.

Const PLANNED_SHAPE As Integer = 1
Const PE_SHAPE As Integer = 2
Const ELPE_SHAPE As Integer = 3
Const ELE_SHAPE As Integer = 4

Sub Button1_Click()
ShowShape(PLANNED_SHAPE)
End Sub

Sub Button2_Click()
ShowShape(PE_SHAPE)
End Sub

Sub Button3_Click()
ShowShape(ELPE_SHAPE)
End Sub

Sub Button4_Click()
ShowShape(ELE_SHAPE)
End Sub

Sub ShowShape(ByVal id as Integer)
ActiveSheet.Shapes("LEGEND PLANNED").Visible = (PLANNED_SHAPE = id)
ActiveSheet.Shapes("LEGEND PE").Visible = (PE_SHAPE = id)
ActiveSheet.Shapes("LEGEND ELPE").Visible = (ELPE_SHAPE = id
ActiveSheet.Shapes("LEGEND ELE").Visible = (ELE_SHAPE = id)
End Sub





All times are GMT +1. The time now is 12:27 AM.

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