Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / January 2008

Tip: Looking for answers? Try searching our database.

Discontiguous Chart Source

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Roland - 25 Jan 2008 22:34 GMT
I want to create a chart with 1 serie which has data from 4 discontiguous
cells.
I defined 'b=6' but in practice it has a variable value, also counter has
variable values.
I tried two methods:
1/ with the union method to make a multirange selection
2/ by combining the cell addresses to a string.
None of these works. How do I solve this?

thanx in advance

Sub Macro1()
 Charts.Add
 With ActiveChart
   .ChartType = xlColumnClustered
   .SetSourceData Source:=Sheets("Summery").Range("A21:I40"), PlotBy:=xlRows
   .SeriesCollection.NewSeries
   .SeriesCollection(1).XValues = "={""x1"",""x2"",""x3"",""x4""}"
   
   Set temprange = Range(Cells(2, b))
   For counter = 4 To 8 Step 2
     Set temprange = Union(temprange, Range(Cells(counter, b)))
   Next
    .SeriesCollection(1).Values = temprange

   'tempstring = Cells(2, b).Address
   'For counter = 4 To 8 Step 2
   '  tempstring = tempstring & "," & Cells(counter, b).Address
   'Next
   '.SeriesCollection(1).Values = range(tempstring)
   
   .SeriesCollection(1).Name = "=""test"""
   .Location Where:=xlLocationAsObject, Name:="Summery"
 End With
End Sub
JLGWhiz - 26 Jan 2008 00:23 GMT
The syntax for a chart series would be:

.SeriesCollection(1).XValues = Sheets(1).Range("B5, B8, B11, B35")

> I want to create a chart with 1 serie which has data from 4 discontiguous
> cells.
[quoted text clipped - 31 lines]
>   End With
> End Sub
Jon Peltier - 26 Jan 2008 01:46 GMT
That doesn't work or a discontiguous range. You need to construct the string
which combines each area's worksheet-referenced address:

Sub ChartSeriesData()
 Dim rngData As Range
 Dim rArea As Range
 Dim sAddress As String

 Set rngData = ActiveSheet.Range("B5,B8,B11,B35")
 sAddress = "="
 For Each rArea In rngData.Areas
   sAddress = sAddress & "'" & ActiveSheet.Name & "'!" & rArea.Address(, ,
xlR1C1) & ","
 Next
 sAddress = Left$(sAddress, Len(sAddress) - 1)
 ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).XValues = sAddress

End Sub

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

> The syntax for a chart series would be:
>
[quoted text clipped - 36 lines]
>>   End With
>> End Sub
JLGWhiz - 26 Jan 2008 16:35 GMT
Now I remember why I do most of my charts manually and just use VBA to call
them up.  Thanks for the lesson Jon.

> That doesn't work or a discontiguous range. You need to construct the string
> which combines each area's worksheet-referenced address:
[quoted text clipped - 62 lines]
> >>   End With
> >> End Sub
Jon Peltier - 26 Jan 2008 22:02 GMT
What's a pain is that you can refer to a range fine with this syntax, but it
doesn't work for a chart.

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

> Now I remember why I do most of my charts manually and just use VBA to
> call
[quoted text clipped - 71 lines]
>> >>   End With
>> >> End Sub
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.