Windows Vista Forums
Vista Forums Home Join Vista Forums Windows 7 Forum Vista Tutorials Tags
Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks.

Go Back   Vista Forums > Misc Newsgroups > PowerShell

Vista - Make an Excel Chart with PowerShell

Reply
 
Old 08-11-2008   #1 (permalink)
OldDog


 
 

Make an Excel Chart with PowerShell

Hi,

As i am working through my project I keep hitting the wall with
Excel.
I need to take some data and create a stacked bar chart with it.


I created a macro in Excel to do this, but I would like to run it as
part of my PowerShell script.


Here is the Excell Macro:


Sub Macro3()
'
' Macro3 Macro
'


'
Range("A81:B82").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'2545'!$A$81:$B$82")
ActiveChart.ChartType = xlBarStacked
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData
ActiveSheet.ChartObjects("Chart 17").Activate
ActiveChart.SeriesCollection(1).XValues = "='2545'!$A$80"
End Sub


Here is as far as I have gotten with PS;


$x = New-Object -comobject Excel.Application
$x.Visible = $True
$x.DisplayAlerts = $False
$y = $x.Workbooks.Add()
$z = $y.Worksheets.Item(1)
$xlBarStacked = 58

$range = $z.range("A81:B82").Select
$y.sheets.Shapes.AddChart.Select
<---- error is here !!!
$ActiveChart.SetSourceData Source:=Range("'2545'!$A$81:$B$82")
<---- error is here !!!
$ActiveChart.ChartType = $xlBarStacked
$ActiveChart.PlotArea.Select
$ActiveChart.SetSourceData
$ActiveSheet.ChartObjects("Chart 17").Activate
$ActiveChart.SeriesCollection(1).XValues = "='2545'!$A$80"


TIA


Olddog





My System SpecsSystem Spec
Old 08-12-2008   #2 (permalink)
OldDog


 
 

Re: Make an Excel Chart with PowerShell

On Aug 11, 3:44*pm, OldDog <mikef2...@xxxxxx> wrote:
Quote:

> Hi,
>
> As i am working through my project I keep hitting the wall with
> Excel.
> I need to take some data and create a stacked bar chart with it.
>
> I created a macro in Excel to do this, but I would like to run it as
> part of my PowerShell script.
>
> Here is the Excell Macro:
>
> Sub Macro3()
> '
> ' Macro3 Macro
> '
>
> '
> * * Range("A81:B82").Select
> * * ActiveSheet.Shapes.AddChart.Select
> * * ActiveChart.SetSourceData Source:=Range("'2545'!$A$81:$B$82")
> * * ActiveChart.ChartType = xlBarStacked
> * * ActiveChart.PlotArea.Select
> * * ActiveChart.SetSourceData
> * * ActiveSheet.ChartObjects("Chart 17").Activate
> * * ActiveChart.SeriesCollection(1).XValues = "='2545'!$A$80"
> End Sub
>
> Here is as far as I have gotten with PS;
>
> $x = New-Object -comobject Excel.Application
> $x.Visible = $True
> $x.DisplayAlerts = $False
> $y = $x.Workbooks.Add()
> $z = $y.Worksheets.Item(1)
> $xlBarStacked = 58
>
> * * $range = $z.range("A81:B82").Select
> * * $y.sheets.Shapes.AddChart.Select
> <---- error is here !!!
> $ActiveChart.SetSourceData Source:=Range("'2545'!$A$81:$B$82")
> <---- error is here !!!
> * * $ActiveChart.ChartType = $xlBarStacked
> * * $ActiveChart.PlotArea.Select
> * * $ActiveChart.SetSourceData
> * * $ActiveSheet.ChartObjects("Chart 17").Activate
> * * $ActiveChart.SeriesCollection(1).XValues = "='2545'!$A$80"
>
> TIA
>
> Olddog
OK, After some fumbeling around I have got a chart to load with this
code;

$xlBarStacked = 58
$objRange = $x.range("A81:B82").Select
$objRange = $x.range("C81").Activate
$myChart = $x.Charts.Add()
$myChart.ChartType = $xlBarStacked

I will keep working at it and post my findings.

Olddog
My System SpecsSystem Spec
Old 08-12-2008   #3 (permalink)
Kiron


 
 

RE: Make an Excel Chart with PowerShell

There is no need to use Select() Method if you define the ranges.
Try this way:

$xlBarStacked = 58
$xl = new-object -c excel.application
$xl.visible = $true
$wb = $xl.workbooks.add()
$sh = $wb.sheets.item(1)
$range = $sh.range('a81:b82')
# create and assign the chart to a variable
$ch = $sh.shapes.addChart().chart
$ch.chartType = $xlBarStacked
$ch.setSourceData($range)
$ch.seriesCollection(1).xValues = $sh.range('a80')

# if the previous line is not what you expected, reset the data
$ch.setSourceData($range)

# excel has 48 chart styles, you can cycle through all
1..48 | % {$ch.chartStyle = $_; $xl.speech.speak("Style $_"); sleep 1}
$ch.chartStyle = 27 # <-- use the one you like

--
Kiron
My System SpecsSystem Spec
Reply

Thread Tools


Similar Threads
Thread Forum
Copying a Chart from Excel to an email in Windows Mail? Microsoft Office
Problems creating trendlines in powershell-created excel chart PowerShell
Create a Chart in Excel PowerShell
Excel Chart Pattern Vista General
[demo] Format-Chart - Formats output as a table with a chart colum PowerShell


Vista Forums is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media Ltd

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46