Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.charting,microsoft.public.excel.programming
external usenet poster
 
Posts: 93
Default Chart.Name lives forever?

At the beginning of the code I blow away any chart objects I find with

Dim co As ChartObject
For Each co In mySheet.ChartObjects
co.Delete
Next

And for good measure (this is probably all you have to do)

mySheet.ChartObjects.Delete

Afterwards, Chart.ChartObjects.Count is == 0

Later, I review the charts on the sheet with

For Each co In ws.ChartObjects
sTitle = co.Chart.Name
MsgBox ("has the name " & sTitle)
Next

Only one chart is found, but it's name is incrementing. This leads me
to believe that I really didn't blow away everything and that I can't
be sure I'm starting with a clean slate.

If I delete the sheet and recreate it, the chart names reset.

Why does this name persist?
  #2   Report Post  
Posted to microsoft.public.excel.charting,microsoft.public.excel.programming
external usenet poster
 
Posts: 3,355
Default Chart.Name lives forever?

At first blush, I wonder if you really do "blow them away". Add this to
your code

Try this

dim myWS as excel.worksheet
Dim co as Excel.chartojbect
set myWS = ActiveSheet

debug.print "Befo " & myWS.ChartObjects.Count

for each co in myWS.Chartobjects
co.delete
next co

debug.print "After: " & myWS.Chartobjects.Count

HTH,

Barb Reinhardt



"cate" wrote:

At the beginning of the code I blow away any chart objects I find with

Dim co As ChartObject
For Each co In mySheet.ChartObjects
co.Delete
Next

And for good measure (this is probably all you have to do)

mySheet.ChartObjects.Delete

Afterwards, Chart.ChartObjects.Count is == 0

Later, I review the charts on the sheet with

For Each co In ws.ChartObjects
sTitle = co.Chart.Name
MsgBox ("has the name " & sTitle)
Next

Only one chart is found, but it's name is incrementing. This leads me
to believe that I really didn't blow away everything and that I can't
be sure I'm starting with a clean slate.

If I delete the sheet and recreate it, the chart names reset.

Why does this name persist?
.

  #3   Report Post  
Posted to microsoft.public.excel.charting,microsoft.public.excel.programming
external usenet poster
 
Posts: 2,510
Default Chart.Name lives forever?

Hi cate,

The numeric suffix of the chart names continues to increment until you close
the workbook and re-open it. If you create 3 charts in a freshly opened
workbook then their names will be Chart 1, Chart 2 and chart 3.

If you then delete them all and create another one before closing the
workbook, then it will be Chart 4.

I am suspecting that your question relates to being able to reference the
charts after they are created and if so, you need to assign names to the
charts at the time of creating.

The following code example creates a charts and names it. If you are
creating several charts then you can use a loop and concatenate "Chart" with
the loop variable for the chart name or you might even want to give them a
more meaningful name.


Sub CreateCharts()
Dim rngChrtPos As Range
Dim ws As Worksheet
Dim chrtObj As ChartObject

Set ws = Sheets("Sheet1")
Set rngChrtPos = ws.Range("D2:G12")

With rngChrtPos
Set chrtObj = ws.ChartObjects.Add _
(.Left, .Top, .Width, .Height)

chrtObj.Name = "Chart 1"

End With

With chrtObj.Chart
.SetSourceData ws.Range("A1:B14")
.ChartType = xlLineMarkers
End With

End Sub

--
Regards,

OssieMac


  #4   Report Post  
Posted to microsoft.public.excel.charting,microsoft.public.excel.programming
external usenet poster
 
Posts: 93
Default Chart.Name lives forever?

On Apr 4, 9:59*pm, OssieMac
wrote:
Hi cate,

The numeric suffix of the chart names continues to increment until you close
the workbook and re-open it. If you create 3 charts in a freshly opened
workbook then their names will be Chart 1, Chart 2 and chart 3.

If you then delete them all and create another one before closing the
workbook, then it will be Chart 4.

I am suspecting that your question relates to being able to reference the
charts after they are created and if so, you need to assign names to the
charts at the time of creating.

The following code example creates a charts and names it. If you are
creating several charts then you can use a loop and concatenate "Chart" with
the loop variable for the chart name or you might even want to give them a
more meaningful name.

Sub CreateCharts()
Dim rngChrtPos As Range
Dim ws As Worksheet
Dim chrtObj As ChartObject

Set ws = Sheets("Sheet1")
Set rngChrtPos = ws.Range("D2:G12")

With rngChrtPos
* Set chrtObj = ws.ChartObjects.Add _
* * * (.Left, .Top, .Width, .Height)

* chrtObj.Name = "Chart 1"

End With

With chrtObj.Chart
* .SetSourceData ws.Range("A1:B14")
* .ChartType = xlLineMarkers
End With

End Sub

--
Regards,

OssieMac


thank you. And you suspect correctly.
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is it possible to ask a chart which worksheet its data lives on? Chrisso Charts and Charting in Excel 1 August 13th 07 07:48 PM
HALF-LIVES FOR A CURVE im_1 Charts and Charting in Excel 2 November 28th 05 08:17 PM


All times are GMT +1. The time now is 06:50 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"