ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   TypeName:="Line - Stacked Column on 2 Axes" ??? (https://www.excelbanter.com/excel-programming/418928-typename-%3D-line-stacked-column-2-axes.html)

Kevin

TypeName:="Line - Stacked Column on 2 Axes" ???
 
The following code works well. I've been asked to show the two columns as
stacked. Is this something that be programmed? Thanks.

Kevin


Sub TestChart()
Dim Series1Rng As Range
Dim Series2Rng As Range
Dim Series3Rng As Range
Dim SeriesXValuesRng As Range
DeleteCharts
strSheetName$ = "Charts"
Set SeriesXValuesRng = Worksheets(strSheetName$).Range("A2:A4")
Set Series1Rng = Worksheets(strSheetName$).Range("B2:B4")
Set Series2Rng = Worksheets(strSheetName$).Range("C2:C4")
Set Series3Rng = Worksheets(strSheetName$).Range("D2:D4")
With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=600, Top:=100, Height:=200)
With .Chart.SeriesCollection.NewSeries
.Values = Series1Rng
.XValues = SeriesXValuesRng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series2Rng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series3Rng
End With
.Chart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line -
Column on 2 Axes"
.Chart.Location Whe=xlLocationAsObject, Name:=strSheetName$
.Chart.HasLegend = False
End With
Sheets(strSheetName$).Range("E1").Select
End Sub

'Data:
'1 A B C D
'2 Jul-08 2768 1094 144204
'3 Aug-08 2627 1022 153008
'4 Sep-08 5348 1244 197267

Andy Pope

TypeName:="Line - Stacked Column on 2 Axes" ???
 
Hi,

Yes, you just need to change the chart types of the series

Sub TestChart()
Dim strSheetName$
Dim Series1Rng As Range
Dim Series2Rng As Range
Dim Series3Rng As Range
Dim SeriesXValuesRng As Range
' DeleteCharts
strSheetName$ = "Charts"
Set SeriesXValuesRng = Worksheets(strSheetName$).Range("A2:A4")
Set Series1Rng = Worksheets(strSheetName$).Range("B2:B4")
Set Series2Rng = Worksheets(strSheetName$).Range("C2:C4")
Set Series3Rng = Worksheets(strSheetName$).Range("D2:D4")
With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=600, Top:=100, Height:=200)
With .Chart.SeriesCollection.NewSeries
.Values = Series1Rng
.XValues = SeriesXValuesRng
.ChartType = xlColumnStacked
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series2Rng
.ChartType = xlColumnStacked
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series3Rng
.ChartType = xlLineMarkers
.AxisGroup = 2
End With
.Chart.HasLegend = False
End With
Sheets(strSheetName$).Range("E1").Select
End Sub

Cheers
Andy

Kevin wrote:
The following code works well. I've been asked to show the two columns as
stacked. Is this something that be programmed? Thanks.

Kevin


Sub TestChart()
Dim Series1Rng As Range
Dim Series2Rng As Range
Dim Series3Rng As Range
Dim SeriesXValuesRng As Range
DeleteCharts
strSheetName$ = "Charts"
Set SeriesXValuesRng = Worksheets(strSheetName$).Range("A2:A4")
Set Series1Rng = Worksheets(strSheetName$).Range("B2:B4")
Set Series2Rng = Worksheets(strSheetName$).Range("C2:C4")
Set Series3Rng = Worksheets(strSheetName$).Range("D2:D4")
With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=600, Top:=100, Height:=200)
With .Chart.SeriesCollection.NewSeries
.Values = Series1Rng
.XValues = SeriesXValuesRng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series2Rng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series3Rng
End With
.Chart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line -
Column on 2 Axes"
.Chart.Location Whe=xlLocationAsObject, Name:=strSheetName$
.Chart.HasLegend = False
End With
Sheets(strSheetName$).Range("E1").Select
End Sub

'Data:
'1 A B C D
'2 Jul-08 2768 1094 144204
'3 Aug-08 2627 1022 153008
'4 Sep-08 5348 1244 197267


--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info

Kevin

TypeName:="Line - Stacked Column on 2 Axes" ???
 
Thanks Andy. Works like a charm.

"Andy Pope" wrote:

Hi,

Yes, you just need to change the chart types of the series

Sub TestChart()
Dim strSheetName$
Dim Series1Rng As Range
Dim Series2Rng As Range
Dim Series3Rng As Range
Dim SeriesXValuesRng As Range
' DeleteCharts
strSheetName$ = "Charts"
Set SeriesXValuesRng = Worksheets(strSheetName$).Range("A2:A4")
Set Series1Rng = Worksheets(strSheetName$).Range("B2:B4")
Set Series2Rng = Worksheets(strSheetName$).Range("C2:C4")
Set Series3Rng = Worksheets(strSheetName$).Range("D2:D4")
With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=600, Top:=100, Height:=200)
With .Chart.SeriesCollection.NewSeries
.Values = Series1Rng
.XValues = SeriesXValuesRng
.ChartType = xlColumnStacked
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series2Rng
.ChartType = xlColumnStacked
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series3Rng
.ChartType = xlLineMarkers
.AxisGroup = 2
End With
.Chart.HasLegend = False
End With
Sheets(strSheetName$).Range("E1").Select
End Sub

Cheers
Andy

Kevin wrote:
The following code works well. I've been asked to show the two columns as
stacked. Is this something that be programmed? Thanks.

Kevin


Sub TestChart()
Dim Series1Rng As Range
Dim Series2Rng As Range
Dim Series3Rng As Range
Dim SeriesXValuesRng As Range
DeleteCharts
strSheetName$ = "Charts"
Set SeriesXValuesRng = Worksheets(strSheetName$).Range("A2:A4")
Set Series1Rng = Worksheets(strSheetName$).Range("B2:B4")
Set Series2Rng = Worksheets(strSheetName$).Range("C2:C4")
Set Series3Rng = Worksheets(strSheetName$).Range("D2:D4")
With ActiveSheet.ChartObjects.Add _
(Left:=100, Width:=600, Top:=100, Height:=200)
With .Chart.SeriesCollection.NewSeries
.Values = Series1Rng
.XValues = SeriesXValuesRng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series2Rng
End With
With .Chart.SeriesCollection.NewSeries
.Values = Series3Rng
End With
.Chart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="Line -
Column on 2 Axes"
.Chart.Location Whe=xlLocationAsObject, Name:=strSheetName$
.Chart.HasLegend = False
End With
Sheets(strSheetName$).Range("E1").Select
End Sub

'Data:
'1 A B C D
'2 Jul-08 2768 1094 144204
'3 Aug-08 2627 1022 153008
'4 Sep-08 5348 1244 197267


--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



All times are GMT +1. The time now is 11:08 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com