Setting Chart Data Source Range Offsetted from ChartObject

JJC129

New Member
Joined
Mar 13, 2021
Messages
9
Office Version
  1. 365
Platform
  1. Windows
Good day everyone,

Looking to get your advice on how to move forward. I'm trying to update a chart's source data after being copied to a new worksheet using the macro below. I would like to set the new data source using an offset from the chartobject itself. Here's what I have below:
Not sure why the last line keeps giving me: Application-defined or object-defined error. Any ideas?



Dim TopLeftCell As Range



Worksheets("Sheet2").Activate

ActiveSheet.ChartObjects(1).Activate

ActiveSheet.ChartObjects(1).TopLeftCell.Select

Set TopLeftCell = ActiveCell

ActiveSheet.ChartObjects(1).Activate

ActiveChart.SetSourceData source:=Range(TopLeftCell.Offset(-4, 0), TopLeftCell.Offset(-1, 6))
 

JJC129

New Member
Joined
Mar 13, 2021
Messages
9
Office Version
  1. 365
Platform
  1. Windows
VBA Code:
For Each chtO In ws.ChartObjects
  With chtO
     .TopLeftCell.Select
     Set TopLeftCell = ActiveCell
     .SetSourceData Source:=Range(TopLeftCell.Offset(0, -3), TopLeftCell.Offset(6, -1))
  End With
Next chtO

I'm getting an object doesn't support this property or method error. Sorry this is so problematic, I'm trying to understand on my end as well.
 

Excel Facts

Control Word Wrap
Press Alt+Enter to move to a new row in a cell. Lets you control where the words wrap.

JJC129

New Member
Joined
Mar 13, 2021
Messages
9
Office Version
  1. 365
Platform
  1. Windows
I'm getting an object doesn't support this property or method error. Sorry this is so problematic, I'm trying to understand on my end as well.
This is at the SetSourceData line.
 

mart37

Well-known Member
Joined
Aug 4, 2017
Messages
1,091
Office Version
  1. 2016
Platform
  1. Windows
.Chart.SetSourceData Source:=Range(TopLeftCell.Offset(0, -3), TopLeftCell.Offset(6, -1))
 
Solution

JJC129

New Member
Joined
Mar 13, 2021
Messages
9
Office Version
  1. 365
Platform
  1. Windows
.Chart.SetSourceData Source:=Range(TopLeftCell.Offset(0, -3), TopLeftCell.Offset(6, -1))
Wow. Worked like a charm. I hope to be as proficient as you one day :) Thank you!
 

Watch MrExcel Video

Forum statistics

Threads
1,129,713
Messages
5,637,934
Members
416,993
Latest member
ant8989

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top