View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
TonyK[_2_] TonyK[_2_] is offline
external usenet poster
 
Posts: 1
Default Moving window to show chart

Curious, DoEvents works the first time through the loop
but not thereafter.

This is in a standard module and screen updating is on,
and I'm working in XL97.

-----Original Message-----
You might throw in a DoEvents

Worksheets("Test").ChartObjects _
(i).Chart.ChartArea.Interior.ColorIndex = 4
DoEvents


Make sure screenupdating is turned on.

I assume this code is in a general module and not a Sheet

Module.

--
Regards,
Tom Ogilvy

wrote in message
...
Thanks Tom & Robin. Any thoughts (just out of

curiosity)
why the recoloring works if I run this from this from

the
VBE, but doesn't alter the chart if I run if from the
worksheet?
-----Original Message-----
Dim rng as Range

For i = Last To 1 Step -1
set rng = Worksheets("Test").ChartObjects _
(i).TopeLeftCell
Application.Goto rng, True
Application.StatusBar = "Processing Chart " & i
CI = Worksheets("Test").ChartObjects _
(i).Chart.ChartArea.Interior.ColorIndex

This will put the top left corner of the chart in the

top
left corner of the
visible area. (or vice versa really)

--
Regards,
Tom Ogilvy

"Tony" wrote in

message
...
Hi all,

I want to step through the charts embedded in a

worksheet
and selectively delete some of them. My approach,
reflected in the code below, is to change the

chartarea
color to something pretty garish so that I can see

which
chart is which (there's 106 of them), decide if it

should
be deleted, and if not, restore the chartarea color.

Here's the problem: this is a fine idea for charts I

can
see (i.e., are in the visible part of the window),

but
it
clearly is useless if I can't see the chart. So, how

do I
move the window so that the chart being operated on

is
in
the viewing window?


Sub DelCharts()

Dim Last As Long, i As Long
Dim CI, Ans

Last = Worksheets("Test").ChartObjects.Count

For i = Last To 1 Step -1

Application.StatusBar = "Processing Chart " & i
CI = Worksheets("Test").ChartObjects _
(i).Chart.ChartArea.Interior.ColorIndex

Worksheets("Test").ChartObjects _
(i).Chart.ChartArea.Interior.ColorIndex = 4

Ans = MsgBox("Delete?", vbYesNo)
If Ans = vbYes Then
Worksheets("Test").ChartObjects(i).Delete
Else
Worksheets("Test").ChartObjects
(i).Chart.ChartArea.Interior.ColorIndex = CI
End If
Next i

Application.StatusBar = ""

End Sub

Oh, BTW, this works as expected if run from the VBE,

but
it doesn't change the chart colors if run from the
worksheet. That's not a big deal for me right now -

this
is a once-off effort to solve another problem, but

I'm
curious why it works in one case but not the other.


.



.