![]() |
Placing charts
I am writing a macro the generates charts onto a new worksheet. I want to be
able to decide in the code where I want to place the charts. How do you do this? When recording amcro I cannot make the placement exact so how do you write the proper code? Please help me! |
Placing charts
Hi
The chart you add is contained within a ChartObject, which is the Parent object of the Chart, and you need to set the position of that. So Set myChart = Charts.Add With myChart.Parent .Top = Range("C2").Top .Left = Range("C2").Left end with will put the top left corner of the chart in the top left corner of C2. regards Paul Fabrizio wrote: I am writing a macro the generates charts onto a new worksheet. I want to be able to decide in the code where I want to place the charts. How do you do this? When recording amcro I cannot make the placement exact so how do you write the proper code? Please help me! |
Placing charts
Oops
This will add as a chart sheet, not embed in a sheet. If you have an existing chart on a sheet called "DataChart" you could do Set myChart = Chartobjects("DataChart") then set its position as before. If the chart does not already exist you will have to do, Set myChart = Charts.Add Set myChart = myChart.Location(Whe=xlLocationasObject, Name:="myWorkSheet") where myWorkSheet is the name of the sheet you want the chart on. regards Paul wrote: Hi The chart you add is contained within a ChartObject, which is the Parent object of the Chart, and you need to set the position of that. So Set myChart = Charts.Add With myChart.Parent .Top = Range("C2").Top .Left = Range("C2").Left end with will put the top left corner of the chart in the top left corner of C2. regards Paul Fabrizio wrote: I am writing a macro the generates charts onto a new worksheet. I want to be able to decide in the code where I want to place the charts. How do you do this? When recording amcro I cannot make the placement exact so how do you write the proper code? Please help me! |
Placing charts
Thank you very much for your help. I am however a beginner at VB so I cannot
use your code directly. When using the code (that you gave me): Set myChart = Charts.Add With myChart.Parent .Top = Range("C2").Top .Left = Range("C2").Left End With I get error that says that the method range failed in the object '_Global'. I do not know what that means or how to solve it. The code for the sub that creats the chart begins with: Private Sub chartMaker(rng1, rng2, rng3 As Range, ByVal s, x As String, index As Integer) When using your other code that you gave me I get error since method or object not declared. Please help me! I just want to solve the simple problems that I described. But I cannot use macros since then I wont be able to use the code the way I want. " skrev: Hi The chart you add is contained within a ChartObject, which is the Parent object of the Chart, and you need to set the position of that. So Set myChart = Charts.Add With myChart.Parent .Top = Range("C2").Top .Left = Range("C2").Left end with will put the top left corner of the chart in the top left corner of C2. regards Paul Fabrizio wrote: I am writing a macro the generates charts onto a new worksheet. I want to be able to decide in the code where I want to place the charts. How do you do this? When recording amcro I cannot make the placement exact so how do you write the proper code? Please help me! |
All times are GMT +1. The time now is 05:15 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com