Thread: category Axis
View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.charting
Jon Peltier Jon Peltier is offline
external usenet poster
 
Posts: 6,582
Default category Axis

Here are some pointers:

http://peltiertech.com/Excel/ChartsH...kChartVBA.html

Use the ChartObjects.Add method to add a chart to the worksheet
http://peltiertech.com/Excel/ChartsH....html#addchart

Use the SeriesCollection.NewSeries method to add a series to the chart:
http://peltiertech.com/Excel/ChartsH...html#addseries

Assign the data, series type, and axis group:

Sub AddNewSeries()
With ActiveChart.SeriesCollection.NewSeries
.Name = "Fred"
.Values = "=Sheet1!Y_Range"
.XValues = Array(1, 2, 3) .ChartType = xlLine
..AxisGroup = xlPrimary
End With
End Sub
I use .Values and .XValues, because most of my charts are XY charts, and
each series has distinct X and Y values in this chart type. For consistency
I use the same approach for all charts.For a list of chart types, go to the
VB Editor, choose Object Browser from the View menu, select Series in the
list of Classes, and select ChartType in the list of Members of 'Series'. At
the bottom it says Property ChartType As XlChartTypewhere XlChartType is a
hyperlink. Click on this to get a list of chart type constants.-
Jon-------Jon Peltier, Microsoft Excel MVPTutorials and Custom
SolutionsPeltier Technical Services, Inc. - http://PeltierTech.com_______
"Mark Burns" wrote in message
...
Jon,

1st: Thanks for the feedback! I appreciate your time and insights.

Ok, so what are the "general rules" for "making a regular chart" then?
i.e.: when/how do you add axes -vs- series...?
How (and when, sequence-of-operations-wise) do you tell the charting
component what chart type to draw / what to do with each series...?
is there a list of valid chart or series format types around anywhere
(probably asking alot, I know)...

Is there a particular reason you don't assign the .categorynames to the
xlCategory, xlPrimary axis yourself - or is it more just a personal
preference thing? (or is it that .XYvalues does the same thing
behind-the-scenes?)


"Jon Peltier" wrote:

It would be easier to make a regular chart, not a built-in custom type,
and
assign the chart type and axis group to each series as it is added. The
built-in custom types ignore what you say and place the first half or so
into one style and the last half or so into the other.


Well...that 'splains some of that apparent oddnesss, then.
I didn't have enough time to figure out what things that
assigning/reassigning the charttype did or didn't step on, either.

Also, I generally ignore the .CategoryNames in favor of using the same
range
as .XValues for all series.

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


"Mark Burns" wrote in message
...
I am building an Column-Line on 2 Axes chart via Automation from Access.
It is basically working, but for some reason, I can't get it to set the
Category (x) axis labels now.
I am now getting a 1004 "unable to set the CategoryNames property of
the
Axis class" error message.
I am setting it with:
Set oXLCAx = oXLC.Axes(xlCategory, xlPrimary)
With oXLCAx
.CategoryNames = xlWS.Range(oXAxis.RangeAddress)
<...snip...
end with

Current, my oXAxis.RangeAddress object is holding the following value:
"[Sheet1]DatarptCorpIncidentsBarsAndLine!$B$2:$B$14,
[Sheet1]DatarptCorpIncidentsBarsAndLine!$B$26,
[Sheet1]DatarptCorpIncidentsBarsAndLine!$B$28,
[Sheet1]DatarptCorpIncidentsBarsAndLine!$B$30:$B$31"

Does it have a problem accepting a non-contiguous address range?
I have previously defines 8 series (4 each on the primary and secondary
axes)

...or have I made some other sort of sequence error in creating the
seriescollections? (I found that I had to make a 4 primary series, and
add
the 4 secondary ones, doing it pair by pair did not seem to work
properly
and
the series' wound up getting mixed up on the wrong axes somehow
(despite
putting the .axisgroup = xlprimary or .axisgroup = xlsecondary on each
series
object)!?

(I also tried to set the .XValues when creating/adding the series with
my
oXAxis.Rangeaddress value, and it would not take that either...=1004
error.)

Any suggestions?