Visual Basic Chart Moving

P

playerbigdog

How do you move a specific chart to specific area. Here is the original code
(done in 2003 format). The program generates but after it moves the cahrts i
can not find them.

ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Chart 2").IncrementLeft 866#
ActiveSheet.Shapes("Chart 2").IncrementTop 300#
 
P

Peter T

Not sure what you mean by this
The program generates but after it moves the cahrts i
can not find them.

Do you mean code can no longer find the chart in future attempts, ie the
chart does not exist on the sheet, or you cannot visually locate it.

What do you mean by "specific area". Following is a guess at what you are
after

Sub test()
Dim cel As Range
Dim chtObj As ChartObject

Set chtObj = ActiveSheet.ChartObjects("Chart 1")

Set cel = Range("D4")

With cel
chtObj.Left = cel.Left
chtObj.Top = cel.Top
End With

End Sub

Regards,
Peter T
 
P

playerbigdog

Yeah i think you are the right track. This program generates approximately 50
diffent sheets which data for specific sities. While i run the program, i can
see charts being generated but after the program is done running and it saves
to my drive; i can not find my cahrts when i open the sheet.
Each sheet generates 25 different charts that are in a certain order and
place. This is what by placing each in a specific place in teh excel sheet.
 
P

playerbigdog

Sorry to double post but i was wondering what the third and fourth lines mean
(i.e what does the 866# and 300# mean)?

ActiveSheet.ChartObjects("Chart 2").Activate
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Chart 2").IncrementLeft 866#
ActiveSheet.Shapes("Chart 2").IncrementTop 300#
 
J

Jon Peltier

Those are distances in pixels. Ignore the #, which is a throwback to an
ancient dialect of Basic.

When working with chart positions and sizes, I prefer to work with the
ChartObject, and to use absolute properties .Left, .Top, .Width, and .Height
than relative properties like .IncrementLeft or .ScaleWidth.

- Jon
 
P

playerbigdog

Hey thanks, i went in moved everything around.. the charts displayed perfect...
Though in my program i am hiding certain columns. Where i have placed the
charts do not overlap the columns i am hiding and yet when i hide them, it
completely delets my charts (no where to be found) and when i dont hide them,
the charts are there for all to see.. any suggestions?
 
P

playerbigdog

This is the code:
'Hides columns used for Duration Curves and Table
Range("H:V").EntireColumn.Hidden = True
'Hides colums used for the KW Duration/PF Curves
Range("AX:BH").EntireColumn.Hidden = True
'Hides columns used for the x-y scatter plots
Range("BR:CI").EntireColumn.Hidden = True
'Hides columns used for the Minimum PF Chart and the KVAR .98/.90 charts
Range("DW:ET").EntireColumn.Hidden = True
The other strange part is the the last three columns are under the graphs
and they do not affect the charts at all when hide. Only the first one does
(Duration Curves and Tables). Also, I have set up so that the columns hide
first and then the charts move. I have no clue?
 
J

Jon Peltier

I still don't get it. You can experiment with the chart object properties.
In the Format Chart Area dialog, or if you shift click the chart to select
it as a shape and format it, on the Properties tab, choose Move but Don't
Size with Cells or Don't Move or Size with Cells. (This is just a guess!)

- Jon
 
P

playerbigdog

You are right this is really wierd. But i started to X things out a long the
path. What i found is if i did not hide column 'J', the charts would show and
of course if i hide 'J' they would be there. So, everything is working great
and the progrma is running great... so far.... Thanks for your help!!!
 

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

Top