Krish - that new version is great. Below is part of my code - it generates charts (2n code section) - so in order for me to use your code - I have to switch sheets - then come back to the sheet - Then I assume it executes GetChartObjects - It all works great (guess I will just make the call to GetChartObjets from my code) - however in the second code part is my chart generation code - At first I just had the next chart on top of the previous chart .top+40 & .Left + 40 - in other words all my charts are stacked - I may have 4 to 8 charts stacked - however that freezes up Excel in a very bad way - It looks like as long as the charts dont overlay - everything works - so the code I show is where I make sure the charts dont touch. I think that is what the problem is. I am not complaining - just trying to make it better - cuz I like your routine.
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
GetChartObjects Sh 'Krish code
End Sub
Private Sub Workbook_Open()
Load FormSlt
FormSlt.Show vbModeless
GetChartObjects ActiveSheet 'Krish code
End Sub
Part of my chart making code
Code:
ActiveSheet.ChartObjects.Add Left:=50, Top:=50, Width:=600, Height:=300
NumCharts = ActiveSheet.ChartObjects.Count
If NumCharts > 1 Then
ActiveSheet.ChartObjects(NumCharts).Left = ActiveSheet.ChartObjects(NumCharts - 1).Left '+ 40
ActiveSheet.ChartObjects(NumCharts).Top = ActiveSheet.ChartObjects(NumCharts - 1).Top + 40 + ActiveSheet.ChartObjects(NumCharts - 1).Height
ActiveSheet.ChartObjects(NumCharts).Height = ActiveSheet.ChartObjects(NumCharts - 1).Height
ActiveSheet.ChartObjects(NumCharts).Width = ActiveSheet.ChartObjects(NumCharts - 1).Width
End If
ActiveSheet.ChartObjects(NumCharts).Activate
Dim Achart As ChartObject
Set Achart = ActiveSheet.ChartObjects(NumCharts)
With Achart.Chart
.ChartType = xlLine
Bookmarks