View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default Cycle thru Graphs

Hi Ray,

Looks like you have ActiveX optionbuttons.
In the worksheet module -

Private Sub OptionButton1_Click()
ChartVis "wkly_visitors"
End Sub

Private Sub OptionButton2_Click()
ChartVis "wkly_sales"
End Sub

Private Sub OptionButton3_Click()
ChartVis "wkly_customer"
End Sub

Private Sub OptionButton4_Click()
ChartVis "wkly_convrate"
End Sub

Sub ChartVis(sName As String)
Dim i As Long
Dim vArr
vArr = Array("wkly_visitors", "wkly_sales", "wkly_customer",
"wkly_convrate")
For i = LBound(vArr) To UBound(vArr)
With ActiveSheet.ChartObjects(vArr(i))
..Visible = .Name = sName
End With
Next

End Sub

Sub ChartVis() could go in a normal module if you want to call it from other
routines. Would probably want to include some error handling in case of non
existent chart name(s).

Regards,
Peter T

"Ray" wrote in message
ups.com...
Hello -

I thought I found an answer for this problem, but can't quite make it
work ....

As part of a large package of information, I have a ;dynamic' chart
sheet where users can change one (or more) criteria to see the level
of detail they want. Four graphs are created from this input. This
part of my code works fine and is not included in my sample code
below...

Here's the problem -- I only want ONE of the four graphs to be visible
at a time. Currently, I'm using 4 option_buttons to allow the user to
select the graph they'd like to see. The graph called by option1
should be the 'default' (ie visible on sheet_activate). Here's the
code so far ...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If OptionButton1.Value = True Then
ActiveSheet.ChartObjects("wkly_visitors").Visible = True

ElseIf OptionButton2.Value = True Then
ActiveSheet.ChartObjects("wkly_sales").Visible = True

ElseIf OptionButton2.Value = True Then
ActiveSheet.ChartObjects("wkly_customer").Visible = True

ElseIf OptionButton2.Value = True Then
ActiveSheet.ChartObjects("wkly_convrate").Visible = True

End If
End Sub

The code to update the graph has it's own macro and is called by a
click_event.

What am I doing wrong with the code above?

TIA, Ray