Hi All,
I have seen a few similar queries out there but none of them seem to solve my problem:
I have a dashboard which contains a series of charts. I have written some code which is triggered by clicking on a chart and which then causes that chart to increase in size -- i.e. zooming in on it. Clicking the enlarged chart then reduces it back down to its original size. This works like a charm in Excel07 but I am attempting to make this work across both 03 and 07 and, in the former, the chart increases in size correctly (although the textboxes & legend positions are wrong) but on clicking a second time the dimensions of plot area reduce by 4 rather than 2 -- i.e. it ends up half the size it should be.
When I step through the code, however, I cannot replicate this and it works perfectly as it should.
I have identified the following sub as the culprit (the size of the chart object itself is controlled elsewhere, at which point the gobal variable 'Large' is set to True if the chart has just been increased in size, otherwise False)
Sub ActiveResize()
Dim Multi As Double
ActiveSheet.Unprotect
With ActiveChart
If Large Then
Multi = 2
Else
Multi = 0.5
End If
With .PlotArea
.Height = .Height * Multi
.Top = .Top * Multi
.Width = .Width * Multi
.Left = .Left * Multi
End With
If .HasLegend Then
With .Legend
.Height = .Height * Multi
.Top = .Top * Multi
.Width = .Width * Multi
.Left = .Left * Multi
.Font.Size = .Font.Size * Multi
End With
End If
For m = 1 To .Shapes.Count
With .Shapes(m)
.Height = .Height * Multi
.Top = .Top * Multi
.Width = .Width * Multi
.Left = .Left * Multi
If Application.Version > 11 Then
.TextEffect.FontSize = .Shapes(m).TextEffect.FontSize * Multi
Else
.TextFrame.Characters.Font.Size = .TextFrame.Characters.Font.Size * Multi
End If
End With
Next m
End With
End Sub
I have stripped away everything unnecessary to complete this single action and I still cannot see why it will only work when stepping through the code. I tried to put a 1sec wait in prior to the PlotArea resize but that didn't seem to make any difference.
Does anyone have any suggestions as to why this is happening and how to resolve it? It's pretty urgent
Many thanks,
AdLoki
Bookmarks