B
botha822
I have been having an intermittent problem with creating a chart and
adding a new series. Sometimes the sub runs smoothly and adds the
chart. Othertimes it produces an error:
"Runtime error 1004: Unable to set the Values Property of the Series
Class"
The Values property is referenced to a range that is updated
periodically based on info from a Bloomberg API call. I suspect that
for some reason excel believes that the range is empty and therefore
cannot assign it to the value property. I have tried a wait timer as
well as disabling screenupdate and turning calculations to manual, none
of which have solved the problem. Here is the source
Sub chart_from_scratch(Chart_Name As String, WkS_Name As String)
Dim Xvalue As String
Dim Value As String
Dim Name As String
Dim co As ChartObject
Dim lastrow As Long
lastrow = LastCellBeforeBlankInColumn()
Xvalue = "=" & WkS_Name & "!R5C2:R" & lastrow & "C2" 'ref to dates
Value = "=" & WkS_Name & "!R5C9:R" & lastrow & "C9" 'ref. to the
Sys. Cum
Name = Chart_Name & " Cum."
' prevent chart series error
If Selection.Parent.Type = 4 Then
' if chart element is selected, we'll be hosed later
ActiveWindow.Visible = False
End If
Set co = Worksheets(WkS_Name).ChartObjects.Add(500, 300, 400, 200)
'ActiveChart.Location Where:=xlLocationAsObject, Name:=Chart_Name
'Call Wait(4)
With co.Chart
ChartType = xlArea
SeriesCollection.NewSeries
SeriesCollection(1).XValues = Xvalue
SeriesCollection(1).Values = Value
SeriesCollection(1).Name = Chart_Name
End With
'co.Name = Name
Application.Run "BLPLinkReset"
' Offset location
'ActiveSheet.Shapes(Name).IncrementLeft 160
'ActiveSheet.Shapes(Name).IncrementTop 115
co.Chart.ChartType = xlLine
With co.Chart.Axes(xlCategory).Border
Weight = xlHairline
LineStyle = xlAutomatic
End With
With co.Chart.Axes(xlCategory)
MajorTickMark = xlOutside
MinorTickMark = xlNone
TickLabelPosition = xlLow
End With
With co.Chart.Axes(xlCategory).TickLabels
Alignment = xlCenter
Offset = 100
ReadingOrder = xlContext
Orientation = 45
End With
End Sub
adding a new series. Sometimes the sub runs smoothly and adds the
chart. Othertimes it produces an error:
"Runtime error 1004: Unable to set the Values Property of the Series
Class"
The Values property is referenced to a range that is updated
periodically based on info from a Bloomberg API call. I suspect that
for some reason excel believes that the range is empty and therefore
cannot assign it to the value property. I have tried a wait timer as
well as disabling screenupdate and turning calculations to manual, none
of which have solved the problem. Here is the source
Sub chart_from_scratch(Chart_Name As String, WkS_Name As String)
Dim Xvalue As String
Dim Value As String
Dim Name As String
Dim co As ChartObject
Dim lastrow As Long
lastrow = LastCellBeforeBlankInColumn()
Xvalue = "=" & WkS_Name & "!R5C2:R" & lastrow & "C2" 'ref to dates
Value = "=" & WkS_Name & "!R5C9:R" & lastrow & "C9" 'ref. to the
Sys. Cum
Name = Chart_Name & " Cum."
' prevent chart series error
If Selection.Parent.Type = 4 Then
' if chart element is selected, we'll be hosed later
ActiveWindow.Visible = False
End If
Set co = Worksheets(WkS_Name).ChartObjects.Add(500, 300, 400, 200)
'ActiveChart.Location Where:=xlLocationAsObject, Name:=Chart_Name
'Call Wait(4)
With co.Chart
ChartType = xlArea
SeriesCollection.NewSeries
SeriesCollection(1).XValues = Xvalue
SeriesCollection(1).Values = Value
SeriesCollection(1).Name = Chart_Name
End With
'co.Name = Name
Application.Run "BLPLinkReset"
' Offset location
'ActiveSheet.Shapes(Name).IncrementLeft 160
'ActiveSheet.Shapes(Name).IncrementTop 115
co.Chart.ChartType = xlLine
With co.Chart.Axes(xlCategory).Border
Weight = xlHairline
LineStyle = xlAutomatic
End With
With co.Chart.Axes(xlCategory)
MajorTickMark = xlOutside
MinorTickMark = xlNone
TickLabelPosition = xlLow
End With
With co.Chart.Axes(xlCategory).TickLabels
Alignment = xlCenter
Offset = 100
ReadingOrder = xlContext
Orientation = 45
End With
End Sub