View Full Version : All charts in same sheet
maxtin
02-04-2008, 12:26 PM
Hi to all,
I have an Excel file with 4 different sheets in it. Each of those sheet contains a chart and i would like to put all those charts in the same one sheet...in a way that i can see all charts (eg. 1/4 page for each chart in this case). I would also have the code to be flexible and work for n number of charts.
TIA
Bob Phillips
02-04-2008, 01:17 PM
Are they in chartsheets or worksheets?
How about a different approach, a list on one sheet, and copy in the selected chart?
maxtin
02-04-2008, 01:38 PM
they are worksheets....sorry i dont get your list idea
Bob Phillips
02-04-2008, 02:58 PM
Sub ChartEm()
Dim mpCharts As Long
Dim mpCols As Long
Dim mpWinWidth As Double
Dim mpWinHeight As Double
Dim mpSheet As Worksheet
Dim mpChartObj As ChartObject
Dim mpLeft As Double
Dim mpTop As Double
Dim mpRightStep As Double
Dim mpDownStep As Double
Dim i As Long, j As Long
mpWinWidth = ActiveWindow.Width - 50
mpWinHeight = ActiveWindow.Height - 50
With ActiveSheet
For Each mpSheet In ActiveWorkbook.Worksheets
If mpSheet.Name <> .Name Then
Set mpChartObj = Nothing
On Error Resume Next
Set mpChartObj = mpSheet.ChartObjects(1)
On Error Resume Next
If Not mpChartObj Is Nothing Then
mpChartObj.Cut
.Paste
ActiveChart.Parent.Left = 25
ActiveChart.Parent.Top = 25
mpCharts = mpCharts + 1
ActiveChart.Name = "chart_" & mpCharts
End If
mpCols = Sqr(mpCharts)
If mpCols ^ 2 <> mpCharts Then
mpCols = Application.RoundUp(mpCols, 0)
End If
End If
Next mpSheet
mpTop = 15
mpLeft = 15
mpRightStep = mpWinWidth / mpCols
mpDownStep = mpWinHeight / Application.RoundUp(mpCharts / mpCols, 0)
For i = 1 To mpCharts Step mpCols
For j = 1 To mpCols
If (i \ 3) * mpCols + j > mpCharts Then Exit For
.ChartObjects((i \ 3) * mpCols + j).Left = mpLeft
.ChartObjects((i \ 3) * mpCols + j).Width = mpRightStep - 10
.ChartObjects((i \ 3) * mpCols + j).Top = mpTop
.ChartObjects((i \ 3) * mpCols + j).Height = mpDownStep - 10
mpLeft = mpLeft + mpRightStep
Next j
mpLeft = 15
mpTop = mpTop + mpDownStep
Next i
End With
End Sub
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.