Placing charts

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

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!
 
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
 
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(Where:=xlLocationasObject,
Name:="myWorkSheet")

where myWorkSheet is the name of the sheet you want the chart on.

regards
Paul
 
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.

"(e-mail address removed)" skrev:
 

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

Back
Top