Deleting Charts

A

Ardy

Hello All:
I am creating a chart by ht following code, that is activated via
command button.

Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
Charts.Add
ActiveChart.Location Where:=xlLocationAsObject, Name:="Roster"
With ActiveChart
.SetSourceData Source:=Sheets("Roster").Range("A2:E5"), PlotBy:= _
xlRows
.HasTitle = True
.ChartType = xlColumnClustered
.HasLegend = False
.SeriesCollection(1).XValues = "=Roster!R2C1:R5C1"
.SeriesCollection(1).Values = "=Roster!R2C4:R5C4"
.SeriesCollection(1).Name = "=Roster!R1C4"
.SeriesCollection(2).Values = "=Roster!R2C5:R5C5"
.SeriesCollection(2).Name = "=Roster!R1C5"
.ChartTitle.Characters.Text = "Concepts About Print"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With

I want to delete this chart via another command Button using this
code, it is not working, Any Idea

Private Sub CommandButton4_Click()
ActiveSheet.ChartObject.Delete
End Sub
 
N

NickHK

One way is to create a module level variable to use;
Dim MyChart As Chart

Private Sub CommandButton1_Click()
Set MyChart = Charts.Add
End Sub

Private Sub CommandButton2_Click()
If Not MyChart Is Nothing Then
Application.DisplayAlerts = False
MyChart.Delete
Application.DisplayAlerts = True
Set MyChart = Nothing
End If
End Sub

NickHK
 
A

Ardy

Thanks.......
One way is to create a module level variable to use;
Dim MyChart As Chart

Private Sub CommandButton1_Click()
Set MyChart = Charts.Add
End Sub

Private Sub CommandButton2_Click()
If Not MyChart Is Nothing Then
Application.DisplayAlerts = False
MyChart.Delete
Application.DisplayAlerts = True
Set MyChart = Nothing
End If
End Sub

NickHK
 
J

Jon Peltier

Ardy's chart is an embedded chart:

This will clear all charts on Roster:

Worksheets("Roster").ChartObjects.Delete

This will delete just the last one created:

Worksheets("Roster").ChartObjects(Worksheets("Roster").ChartObjects.Count).Delete

- Jon
 
A

Ardy

Thanks Jon,
Works Much Cleaner.
Jon said:
Ardy's chart is an embedded chart:


This will clear all charts on Roster:

Worksheets("Roster").ChartObjects.Delete

This will delete just the last one created:

Worksheets("Roster").ChartObjects(Worksheets("Roster").ChartObjects.Count).Delete

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______
 

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