Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 110
Default ChartObject.Copy *very* slow

Hi All

I have some code where I use a templated chart to make a copy:

Debug.Print " MC 0: " & Now()
Dim chtObjTemplate As ChartObject, wsCharts As Worksheet
Set wsCharts = ThisWorkbook.Sheets("Charts")
Set chtObjTemplate = wsCharts.ChartObjects("Chart 1")
chtObjTemplate.Copy
Debug.Print " MC 1: " & Now()

I am surprised to find that this takes roughly 5 seconds as the debug
statements show:
MC 0: 27/03/08 08:51:45
MC 1: 27/03/08 08:51:50

My code turns off the screen, disables events and sets calculation to
manual:
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False

So does anyone have any idea why this is taking so long and how to
get
around it? This amount of time per chart copy will mean my solution
will not scale.

Is there a better way to ensure that a chart generated automatically
matches the formatting of another chart?

Thanks in advance,
Chrisso
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default ChartObject.Copy *very* slow

What version of Excel?

I prefer working with chart objects in this context as well, but what if you
use

chtObjTemplate.Chart.Copy

You could copy a properly formatted chart, select your unformatted chart,
and use paste special - formats to apply the formats to the second chart.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Chrisso" wrote in message
...
Hi All

I have some code where I use a templated chart to make a copy:

Debug.Print " MC 0: " & Now()
Dim chtObjTemplate As ChartObject, wsCharts As Worksheet
Set wsCharts = ThisWorkbook.Sheets("Charts")
Set chtObjTemplate = wsCharts.ChartObjects("Chart 1")
chtObjTemplate.Copy
Debug.Print " MC 1: " & Now()

I am surprised to find that this takes roughly 5 seconds as the debug
statements show:
MC 0: 27/03/08 08:51:45
MC 1: 27/03/08 08:51:50

My code turns off the screen, disables events and sets calculation to
manual:
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False

So does anyone have any idea why this is taking so long and how to
get
around it? This amount of time per chart copy will mean my solution
will not scale.

Is there a better way to ensure that a chart generated automatically
matches the formatting of another chart?

Thanks in advance,
Chrisso



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 110
Default ChartObject.Copy *very* slow

Hi Jon

I am running Excel 2002 10.2614

I tried:
chtObjTemplate.Chart.Copy
but this gave an error ("Run time Error 1004 : Method 'Copy' of object
'_Chart' failed")

So I tried:
chtObjTemplate.Chart.ChartArea.Copy
and this was *much* faster and did the same job.

Thanks for you help - much appreciated.

Chrisso


On 28 Mar, 13:42, "Jon Peltier"
wrote:
What version of Excel?

I prefer working with chart objects in this context as well, but what if you
use

* * chtObjTemplate.Chart.Copy

You could copy a properly formatted chart, select your unformatted chart,
and use paste special - formats to apply the formats to the second chart.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. -http://PeltierTech.com
_______

"Chrisso" wrote in message

...



Hi All


I have some code where I use a templated chart to make a copy:


* *Debug.Print " * *MC 0: " & Now()
* *Dim chtObjTemplate As ChartObject, wsCharts As Worksheet
* *Set wsCharts = ThisWorkbook.Sheets("Charts")
* *Set chtObjTemplate = wsCharts.ChartObjects("Chart 1")
* *chtObjTemplate.Copy
* *Debug.Print " * *MC 1: " & Now()


I am surprised to find that this takes roughly 5 seconds as the debug
statements show:
* *MC 0: 27/03/08 08:51:45
* *MC 1: 27/03/08 08:51:50


My code turns off the screen, disables events and sets calculation to
manual:
* *Application.ScreenUpdating = False
* *Application.Calculation = xlManual
* *Application.EnableEvents = False


So does anyone have any idea why this is taking so long and how to
get
around it? This amount of time per chart copy will mean my solution
will not scale.


Is there a better way to ensure that a chart generated automatically
matches the formatting of another chart?


Thanks in advance,
Chrisso- Hide quoted text -


- Show quoted text -


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,582
Default ChartObject.Copy *very* slow

Oh yeah, ChartArea. If I'd actually tried it, I would have posted the
correct code. Glad you figured it out.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. - http://PeltierTech.com
_______


"Chrisso" wrote in message
...
Hi Jon

I am running Excel 2002 10.2614

I tried:
chtObjTemplate.Chart.Copy
but this gave an error ("Run time Error 1004 : Method 'Copy' of object
'_Chart' failed")

So I tried:
chtObjTemplate.Chart.ChartArea.Copy
and this was *much* faster and did the same job.

Thanks for you help - much appreciated.

Chrisso


On 28 Mar, 13:42, "Jon Peltier"
wrote:
What version of Excel?

I prefer working with chart objects in this context as well, but what if
you
use

chtObjTemplate.Chart.Copy

You could copy a properly formatted chart, select your unformatted chart,
and use paste special - formats to apply the formats to the second chart.

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
Peltier Technical Services, Inc. -http://PeltierTech.com
_______

"Chrisso" wrote in message

...



Hi All


I have some code where I use a templated chart to make a copy:


Debug.Print " MC 0: " & Now()
Dim chtObjTemplate As ChartObject, wsCharts As Worksheet
Set wsCharts = ThisWorkbook.Sheets("Charts")
Set chtObjTemplate = wsCharts.ChartObjects("Chart 1")
chtObjTemplate.Copy
Debug.Print " MC 1: " & Now()


I am surprised to find that this takes roughly 5 seconds as the debug
statements show:
MC 0: 27/03/08 08:51:45
MC 1: 27/03/08 08:51:50


My code turns off the screen, disables events and sets calculation to
manual:
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False


So does anyone have any idea why this is taking so long and how to
get
around it? This amount of time per chart copy will mean my solution
will not scale.


Is there a better way to ensure that a chart generated automatically
matches the formatting of another chart?


Thanks in advance,
Chrisso- Hide quoted text -


- Show quoted text -



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
Copy and paste slow Tuan Vu[_2_] Excel Discussion (Misc queries) 1 November 25th 09 01:33 PM
ChartObject.Copy very slow Chrisso Excel Programming 0 March 27th 08 09:00 AM
ChartObject.Copy very slow Chrisso Excel Programming 0 March 27th 08 09:00 AM
Copy / Paste extremely slow Isotope07 Excel Worksheet Functions 4 April 23rd 07 02:58 PM
copy and paste very slow Alan Excel Discussion (Misc queries) 2 August 5th 05 09:41 PM


All times are GMT +1. The time now is 02:28 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"