ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Charts and Charting in Excel (https://www.excelbanter.com/charts-charting-excel/)
-   -   Chart resize macro (https://www.excelbanter.com/charts-charting-excel/87930-chart-resize-macro.html)

Eric_B

Chart resize macro
 

I have a sheet that contains about 32 charts, since there are so many
charts I reduced the scale of the sheet so I can see all charts.
Problem is the charts are so small I can't interpret them. I want to
create a macro that re-sizes them when I click on them without having
to write a separate macro for each chart. Is there a way to return the
name of a chart to a variable? Here is what i have so far:

Dim ChtOb As ChartObject


With ActiveSheet

Set ChtOb = .ChartObjects("chart 1")


If ChtOb.Height < 1500 Then
With ChtOb
.Height = 1500
.Width = 2800
.Top = 34
.Left = 43
End With
Else
With ChtOb
.Height = 420
.Width = 715
.Top = 5
.Left = 5
End With
End If


--
Eric_B
------------------------------------------------------------------------
Eric_B's Profile: http://www.excelforum.com/member.php...o&userid=24486
View this thread: http://www.excelforum.com/showthread...hreadid=540641


Jon Peltier

Chart resize macro
 
Right click on each chart, select Assign Macro, then select the name of this
macro.

Then put this in the macro:

Set ChtOb = .ChartObjects(Application.Caller)

When you run this macro, you might first determine app.caller's size, then
have the macro loop each chart in the sheet, and if it is larger than X
apply the smaller dimensions, then find the app.caller and if its original
size was small, increase its size.

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

"Eric_B" wrote in
message ...

I have a sheet that contains about 32 charts, since there are so many
charts I reduced the scale of the sheet so I can see all charts.
Problem is the charts are so small I can't interpret them. I want to
create a macro that re-sizes them when I click on them without having
to write a separate macro for each chart. Is there a way to return the
name of a chart to a variable? Here is what i have so far:

Dim ChtOb As ChartObject


With ActiveSheet

Set ChtOb = .ChartObjects("chart 1")


If ChtOb.Height < 1500 Then
With ChtOb
Height = 1500
Width = 2800
Top = 34
Left = 43
End With
Else
With ChtOb
Height = 420
Width = 715
Top = 5
Left = 5
End With
End If


--
Eric_B
------------------------------------------------------------------------
Eric_B's Profile:
http://www.excelforum.com/member.php...o&userid=24486
View this thread: http://www.excelforum.com/showthread...hreadid=540641





All times are GMT +1. The time now is 04:31 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com