Problem with Legends in chart

  • Thread starter Thread starter n/a
  • Start date Start date
N

n/a

Hi

I intend to maximize the width of the legend within two axis. I
reposition it myself using this code:

If .HasLegend Then
.Legend.Width = .PlotArea.InsideWidth
.Legend.Left = .PlotArea.InsideLeft
.Legend.Top = 1
End If

But it is not working when I use
Application.ScreenUpdating = False

If
Application.ScreenUpdating = True
then only charts shown on the screen while updating / creating are
done right.

What is going on ?


Secondly I want to have the legendentries to occupy one line each
instead of one line all together. Can that be accomplished ?



Yours
 
Excel 97? I never did much with Legend formatting in '97, but I know it
can really mess up plot area formatting if the chart isn't completely on
screen. I can't say much about your specific problem beyond that, other
than try to (temporarily) center the chart on screen, make your changes,
and put the chart back.

If the legend is wide enough to fit more than one entry across, it fills
them across first, then down.

- Jon
 
And my 2 cents...

Be sure your sheet zoom is set to 100%.

Charts have weird behavior with other settings...
 
Application.ScreenUpdating = False prevents any changes to the screen
until it is reset to True. So just wrap your code between False & True.

The only way that I know to have each legend entry on a separate line is
to have the legend position formatted Left, Right, or Corner. Top and
bottom try to put them on a single line.
Of course you can use Left, Right, or Corner and than move it. (I dragged
it and it worked. But the plot area got 'squished')
 
I have to use screenupdating = False, or else my performance drops
below acceptable. I'm producing up to 27 charts in every worksheet so
I need this.

I'm using Excel 2000

What I find irritating is that the code work if I singlestep through
it in debug mode but doesn't work in "release" mode. It seems to be
the screenupdating that does something and only if the chart is
present on the screen. If it is offscreen (which is possible) they
still have this fault.

I hoped someone have heard of this problem before, but I can't find
anything anywhere !
 
Hi

It helps to put the zoom = 100 %. Thanks to Steve for that suggestion.

I consider this to be a bug ! But luckily Steve pointed on a work-around
 
Try structuring your code like this

Sub MessMyChart()
ApplicationScreenUpdating = False
' the screen will not change during this
* code to do something *
ApplicationScreenUpdating = True
' the screen should refresh
ApplicationScreenUpdating = False
' back to freezing the screen
* more code *
ApplicationScreenUpdating = True
End Sub
 
Back
Top