Reputation: 81
I create a dynamic chart on multiple data series according to the selection I make in the listbox (Lbox1).
It throws an error when I delete all the data series initially to make a fresh chart.
Public Sub listbox_selection()
Dim i As Integer
Dim temp As String
Dim k As Integer
Dim s As SeriesCollection
k = Sheets("Plan1").ChartObjects(1).Chart.SeriesCollection.count
##This part giving error
For i = 1 To k
Sheets("Plan1").ChartObjects(1).Chart.SeriesCollection(i).Delete
Next
####
Sheets("Plan1").ListBoxes("LBox1").Select
For i = 1 To Sheets("Plan1").Shapes("LBox1").ControlFormat.ListCount
If Sheets("Plan1").ListBoxes("LBox1").Selected(i) = True Then
Call Listit(X:=i)
End If
Next
End Sub
Public Sub Listit(ByVal X As Integer)
X = X + 3
With Sheets("Plan1").ChartObjects(1).Chart
With .SeriesCollection.NewSeries
.XValues = Range("Q2:U2")
.Values = Range("Q" & X & ":U" & X & "")
.Name = Range("P" & X).Value
End With
End With
End Sub
Upvotes: 8
Views: 53612
Reputation: 93
You can use Sheets("Plan1").ChartObjects(1).Chart.ChartArea.ClearContents
Upvotes: 9
Reputation: 2066
Try this,
Sub temp()
ActiveSheet.ChartObjects("Chart 1").Activate
For Each s In ActiveChart.SeriesCollection
s.Delete
Next s
End Sub
Upvotes: 18