Using VBA to Delete a Chart

M

MikeM

Suppose I create a chart with

Charts.Add
set thisChart = ActiveChart

Why can't I delete it with

thisChart.Delete?
 
D

Don Guillett

Macro just recorded
Sub Macro3()
'
' Macro3 Macro
' Macro recorded 10/13/2003 by Don Guillett
'

'
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveWindow.Visible = False
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlMaximized
End Sub
 
V

Vasant Nanavati

Hi:

This worked fine for me:

Sub Test()
Dim thisChart As Chart
Charts.Add
Set thisChart = ActiveChart
thisChart.Delete
End Sub

I did get an alert before the deletion, but that is easily suppressed using
the DisplayAlerts property of the Application object.

Regards,

Vasant.
 
T

Tom Ogilvy

Sub MakeandBreak()
Charts.Add
Set thisChart = ActiveChart
thisChart.Delete

End Sub

worked fine for me. Prompted if I wanted to delete the chart

Sub MakeandBreak()
Charts.Add
Set thisChart = ActiveChart
Application.DisplayAlerts = False
thisChart.Delete
Application.DisplayAlerts = True
End Sub

that said, this works because ThisChart is visible to the procedure where I
delete it. I suspect that is not your case. You need to declare thischart
as a public variable - do it at the top of a general module outside any
procedure

Public thisChart as Chart

Sub CreateChart
Charts.Add
Set thisChart = ActiveChart
End Sub

Sub deleteChart
Application.DisplayAlerts = False
thisChart.Delete
Application.DisplayAlerts = True
End Sub

that should work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top