Checking if a Chart Exists on a Sheet

K

Keith Wilby

Newbie question:

What code do I need to check if a chart exists on a worksheet?

Many thanks.

Keith.
 
K

Keith Wilby

Keith Wilby said:
Newbie question:

What code do I need to check if a chart exists on a worksheet?

Whoops, how do I determine it's name if one exists? I've tried
ActiveSheet.ChartObjects.ActiveChart.Name but that's obviously not right.
 
P

paul.robinson

Hi
Charts are contained inside ChartObjects. Chartobjects have names
(which you don't see on the "chart") while Charts have titles (which
you do see).
If you only have one chart on a sheet then it is contained inside one
ChartObject and you can do

myName = ActiveSheet.ChartObject(1).Name
myTitle = ActiveSheet.ChartObject(1).Chart.Title
to get name and title.

To see if a chart exists try

On Error resume next
Set myChartObject = Activesheet.ChartObjects(myName)
If myChartObject is Nothing then
 
P

Peter T

Sub test()
Dim i As Long
Dim s As String
Dim ws As Worksheet

Set ws = ActiveSheet

For i = 1 To ws.ChartObjects.Count
s = s & ws.ChartObjects(i).Name & vbCr
Next

If Len(s) = 0 Then s = "No Charts on " & ws.Name

MsgBox s
End Sub

Regards,
Peter T
 
P

paul.robinson

Sorry, post went when I pressed return for some reason. Last bit
should be

On Error resume next
Set myChartObject = Activesheet.ChartObjects(myName)
If myChartObject is Nothing then
'some code
End if
On error goto 0

where myName is a text string.
If you have several charts with Titles but the parent chartobjects do
not have names try

For Each Cht In Activesheet.ChartObjects
If Cht.Chart.Title = myTitle then
msgbox "Chart Exists!"
Exit For
end if
next Cht

regards
Paul
 
D

Dave Peterson

One more:

If ActiveSheet.ChartObjects.Count > 0 Then
MsgBox "has some!"
Else
MsgBox "nope"
End If
 

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