Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
BW BW is offline
external usenet poster
 
Posts: 49
Default Can't set Chart's SeriesCollection XValues

Hello,

Been trying to tackle this very strange problem i have been having.

I have a pie-chart's x, y coordinates reference a contigous range of cells
for each x,y coordinate.

The following code works:

chartObj.Chart.SeriesCollection(1).Values = yRng
chartObj.Chart.SeriesCollection(1).XValues = xRng

where xRng, yRng are Range objects.

However, i get the following error message : "Unable to set the XValues
property of the Series class" when i try programmatically set the chart x to
the ACTUAL VALUE contained with xRng using the following way:

Dim xArray, yArray as variant
Dim i as long
For i = 1 To xRng.count
yArray(i - 1) = yRng.Cells(i, 1)
xArray(i - 1) = xRng.Cells(i, 1)
Next i
chartObj.Chart.SeriesCollection(1).Values = yArray
chartObj.Chart.SeriesCollection(1).XValues = xArray '-This line fails.

I don't understand as both methods should be equivalent. In the first
example, i'm setting the chart x,y coordinates to reference cells. In the
2nd example, i'm setting the chart x,y, coordianes to the actual data
contained within those same cells.

Can anyone see what i'm doing wrong or how i can better set the chart's x,y
references to the actual values. Unfortunatle the Workbook.BreakLinks method
doesn't exist in excel2000 for me to use to convert the chart's x,y refrences
to actual values.

Thanks,



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 747
Default Can't set Chart's SeriesCollection XValues

I first assumed it was because Pie charts don't support xValues. However, I
didn't receive an error running the following code. But all that adding
xValues did was rename the category labels to these xValues. The xValues
themselves apparently weren't used in the plot.

I never use Pie charts (or charts a whole lot in general) and havn't spent
much time investigating this. So I may be missing something. I suggest you
take it from here. I repeat, the following two macros (written in a hurry)
worked for me.

Regards,
Greg

Sub MakePieChart()
Dim cht As Chart
Dim chtobj As ChartObject
Dim s As Series
Set chtobj = ActiveSheet. _
ChartObjects.Add(100, 100, 200, 200)
Set cht = chtobj.Chart
With cht
.ChartType = xlPie
Set s = .SeriesCollection.NewSeries
s.XValues = Range("A1:A10")
s.Values = Range("B1:B10")
End With
End Sub

Sub ChangeChartData()
Dim cht As Chart
Dim xRng As Range, yRng As Range
Dim xArray() As Single, yArray() As Single
Dim i As Long

Set xRng = Range("C1:C10")
Set yRng = Range("D1:D10")
ReDim xArray(xRng.Count - 1)
ReDim yArray(yRng.Count - 1)
For i = 1 To xRng.Count
yArray(i - 1) = yRng.Cells(i, 1)
xArray(i - 1) = xRng.Cells(i, 1)
Next
Set cht = ActiveSheet.ChartObjects(1).Chart
With cht.SeriesCollection(1)
.Values = yArray
.XValues = xArray
End With
End Sub

"BW" wrote:

Hello,

Been trying to tackle this very strange problem i have been having.

I have a pie-chart's x, y coordinates reference a contigous range of cells
for each x,y coordinate.

The following code works:

chartObj.Chart.SeriesCollection(1).Values = yRng
chartObj.Chart.SeriesCollection(1).XValues = xRng

where xRng, yRng are Range objects.

However, i get the following error message : "Unable to set the XValues
property of the Series class" when i try programmatically set the chart x to
the ACTUAL VALUE contained with xRng using the following way:

Dim xArray, yArray as variant
Dim i as long
For i = 1 To xRng.count
yArray(i - 1) = yRng.Cells(i, 1)
xArray(i - 1) = xRng.Cells(i, 1)
Next i
chartObj.Chart.SeriesCollection(1).Values = yArray
chartObj.Chart.SeriesCollection(1).XValues = xArray '-This line fails.

I don't understand as both methods should be equivalent. In the first
example, i'm setting the chart x,y coordinates to reference cells. In the
2nd example, i'm setting the chart x,y, coordianes to the actual data
contained within those same cells.

Can anyone see what i'm doing wrong or how i can better set the chart's x,y
references to the actual values. Unfortunatle the Workbook.BreakLinks method
doesn't exist in excel2000 for me to use to convert the chart's x,y refrences
to actual values.

Thanks,



  #3   Report Post  
Posted to microsoft.public.excel.programming
BW BW is offline
external usenet poster
 
Posts: 49
Default Can't set Chart's SeriesCollection XValues

HI Greg

Thanks for your help.

I did a google search on this error message and it appears that it's a
limitation in excel. See
http://www.excelforum.com/archive/in.../t-276813.html, or do a google
search on the error message.

Just FYI...
BW

"Greg Wilson" wrote:

I first assumed it was because Pie charts don't support xValues. However, I
didn't receive an error running the following code. But all that adding
xValues did was rename the category labels to these xValues. The xValues
themselves apparently weren't used in the plot.

I never use Pie charts (or charts a whole lot in general) and havn't spent
much time investigating this. So I may be missing something. I suggest you
take it from here. I repeat, the following two macros (written in a hurry)
worked for me.

Regards,
Greg

Sub MakePieChart()
Dim cht As Chart
Dim chtobj As ChartObject
Dim s As Series
Set chtobj = ActiveSheet. _
ChartObjects.Add(100, 100, 200, 200)
Set cht = chtobj.Chart
With cht
.ChartType = xlPie
Set s = .SeriesCollection.NewSeries
s.XValues = Range("A1:A10")
s.Values = Range("B1:B10")
End With
End Sub

Sub ChangeChartData()
Dim cht As Chart
Dim xRng As Range, yRng As Range
Dim xArray() As Single, yArray() As Single
Dim i As Long

Set xRng = Range("C1:C10")
Set yRng = Range("D1:D10")
ReDim xArray(xRng.Count - 1)
ReDim yArray(yRng.Count - 1)
For i = 1 To xRng.Count
yArray(i - 1) = yRng.Cells(i, 1)
xArray(i - 1) = xRng.Cells(i, 1)
Next
Set cht = ActiveSheet.ChartObjects(1).Chart
With cht.SeriesCollection(1)
.Values = yArray
.XValues = xArray
End With
End Sub

"BW" wrote:

Hello,

Been trying to tackle this very strange problem i have been having.

I have a pie-chart's x, y coordinates reference a contigous range of cells
for each x,y coordinate.

The following code works:

chartObj.Chart.SeriesCollection(1).Values = yRng
chartObj.Chart.SeriesCollection(1).XValues = xRng

where xRng, yRng are Range objects.

However, i get the following error message : "Unable to set the XValues
property of the Series class" when i try programmatically set the chart x to
the ACTUAL VALUE contained with xRng using the following way:

Dim xArray, yArray as variant
Dim i as long
For i = 1 To xRng.count
yArray(i - 1) = yRng.Cells(i, 1)
xArray(i - 1) = xRng.Cells(i, 1)
Next i
chartObj.Chart.SeriesCollection(1).Values = yArray
chartObj.Chart.SeriesCollection(1).XValues = xArray '-This line fails.

I don't understand as both methods should be equivalent. In the first
example, i'm setting the chart x,y coordinates to reference cells. In the
2nd example, i'm setting the chart x,y, coordianes to the actual data
contained within those same cells.

Can anyone see what i'm doing wrong or how i can better set the chart's x,y
references to the actual values. Unfortunatle the Workbook.BreakLinks method
doesn't exist in excel2000 for me to use to convert the chart's x,y refrences
to actual values.

Thanks,



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Chart's DataTable fujing1003 Charts and Charting in Excel 5 February 8th 07 11:20 AM
Alignment within a chart's data table Laurel New Users to Excel 2 January 4th 06 02:56 PM
how can i getting chart's sourcedate range classpeople Charts and Charting in Excel 1 June 16th 05 02:47 AM
How can I change a chart's name? Berthica Charts and Charting in Excel 4 May 6th 05 02:22 AM
Change a chart's series using VBA... Sharon[_8_] Excel Programming 2 April 13th 04 12:56 AM


All times are GMT +1. The time now is 05:57 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"