98.7% Of all customers recommend us, we're so confident about our results we publish all reviews and stats
View Live Stats View ReviewsForum home » Delegate support and help forum » Microsoft Excel Training and help » ActiveChart.SeriesCollection(index) index as a function
ActiveChart.SeriesCollection(index) index as a function
Resolved · High Priority · Version 2007
jeff has attended:
Excel VBA Intro Intermediate course
ActiveChart.SeriesCollection(index) index as a function
Hi I have two questions:
1.) Is it possible to have the index part of an ActiveChart.SeriesCollection(index) as a function i.e. "n + 1" or a integer or variable that is equal to a function. I have a VBA script that uses for loops to add series's of data to a chart through the script. I think I will be able to simplify my script if I can do this.
2.) The plot is an xy scatter and I would like the values of the dataseries to be a collection of points that are not all next to each other. is this possible? I have found a work around by creating an array from the values but ideally the char would be pointing at the cells in the sheet.
I hope I have explained my questions clearly.
Thanks very much in advance.
Script below
Sub CreateChartScript()
Dim n As Integer
Dim t As Integer
Dim j As Integer
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLines
For n = 1 To 7 'fixed for 7 columns, 10 to 70 deg C, if adding more columns adjust.
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(n)
.MarkerStyle = xlMarkerStyleNone
.Border.ColorIndex = 1
.Border.Weight = xlThin
.Name = Sheets("Cont RH").Cells(1, 2 + n)
.XValues = Range(Sheets("Cont RH").Cells(2, 2), Sheets("Cont RH").Cells(16, 2))
.Values = Range(Sheets("Cont RH").Cells(2, 2 + n), Sheets("Cont RH").Cells(16, 2 + n))
End With
Next
For n = n To 9 '2 loops
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(n)
.MarkerStyle = xlMarkerStyleNone
.Border.ColorIndex = n
.Border.Weight = xlThin
.Name = n 'ActiveSheet.Cells(2, 2)
.XValues = Array(Sheets("Populated sheet").Cells(3 + (n - 7), 2), Sheets("Populated sheet").Cells(6 + (n - 7), 2), Sheets("Populated sheet").Cells(9 + (n - 7), 2))
.Values = Array(Sheets("Populated sheet").Cells(3 + (n - 7), 3), Sheets("Populated sheet").Cells(6 + (n - 7), 3), Sheets("Populated sheet").Cells(9 + (n - 7), 3))
End With
Next
For n = n To 11 '2 loops
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(n)
.MarkerStyle = xlMarkerStyleNone
.Border.ColorIndex = n
.Border.Weight = xlThin
.Name = n 'ActiveSheet.Cells(2, 2)
.XValues = Array(Sheets("Populated sheet").Cells(3 + (n - 9), 4), Sheets("Populated sheet").Cells(6 + (n - 9), 4), Sheets("Populated sheet").Cells(9 + (n - 9), 4))
.Values = Array(Sheets("Populated sheet").Cells(3 + (n - 9), 5), Sheets("Populated sheet").Cells(6 + (n - 9), 5), Sheets("Populated sheet").Cells(9 + (n - 9), 5))
End With
Next
With ActiveChart
.Axes(xlCategory).MinimumScale = 0
.Axes(xlCategory).MaximumScale = 100
.Axes(xlCategory).MajorUnit = 10
.Axes(xlValue).MinimumScale = -40
.Axes(xlValue).MaximumScale = 100
.Axes(xlValue).MajorUnit = 10
.SetElement (msoElementChartTitleCenteredOverlay)
.ChartTitle.Text = "test"
End With
End Sub
RE: ActiveChart.SeriesCollection(index) index as a function
Hi Jeff
With regards to your post we have had a look at it and addressing it in 2 parts:
1) Much of what you are trying to do is covered on our Excel VBA Advanced course, click here for details.
2) We can assist with this but will need to see your working files to advise on a solution and amount of work involved.
It is possible to create a bespoke one-to-one training event for you to be trained to develop a solution for your current requirements and enable you to tackle future requirements as well.
Your requests in this instance are beyond the scope of the forum however if you wish to discuss the above options further please reply to my email directly.
Kind regards
Jacob
Training information:
See also:
Welcome. Please choose your application (eg. Excel) and then post your question. Our Microsoft Qualified trainers will then respond within 24 hours (working days). Frequently Asked Questions
Any suggestions, questions or comments? Please post in the Improve the forum thread. |
Excel tip:Selecting blank cells within a range of dataSelect the range of data which includes the blank cells that you would like to select. Press the F5 key, this will take you to the GoTo dialogue box where you can click on Special and then select Blanks. |