I am running an Excel 2007 vba program from dos (using cscript). The program opens an Excel file that has a fileformat of txt. It uses the data in the file to create two charts for each day. So far everything works except when saving the file. I would ultimately like to save it back with the same name, but needing to use a different fileformat so that the charts will display. I have tried several combinations of the saveas command. The weird thing is, when I use the := in the saveas command, the program doesn't even open Excel - but when I use only = in the command it opens the file and creates the charts. Here is the program:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("Z:\Num_Doc_BP_2009_test.xls")
'***************************************************************************
' Create area charts for each day's Number of Documents. *
'***************************************************************************
start_value = 2
end_value = 25
range_value = "='" & objWorkbook.ActiveSheet.Name & "'!$C$" & start_value & ":$C$" & end_value & ""
Do While objWorkbook.ActiveSheet.Cells(end_value,1).Value <> ""
x_value = "='" & objWorkbook.ActiveSheet.Name & "'!$B$" & start_value & ":$B$" & end_value & ""
objWorkbook.ActiveSheet.Shapes.AddChart.Select
objWorkbook.ActiveChart.ChartType = 76
chart_range = "='" & objWorkbook.ActiveSheet.Name & "'!$F$" & start_value & ":$P$" & end_value & ""
Set RngToCover = objWorkbook.ActiveSheet.Range(chart_range)
Set ChtOb = objWorkbook.ActiveChart.Parent
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition
objWorkbook.ActiveChart.SeriesCollection.NewSeries
objWorkbook.ActiveChart.SeriesCollection(3).Name = "='" & objWorkbook.ActiveSheet.Name & "'!$C$1"
objWorkbook.ActiveChart.SeriesCollection(3).Values = range_value
objWorkbook.ActiveChart.SeriesCollection(4).Delete
objWorkbook.ActiveChart.SeriesCollection(2).Delete
objWorkbook.ActiveChart.SeriesCollection(1).Delete
objWorkbook.ActiveChart.SeriesCollection(1).XValues = x_value
start_value = start_value + 24
end_value = end_value + 24
range_value = "='" & objWorkbook.ActiveSheet.Name & "'!$C$" & start_value & ":$C$" & end_value & ""
Loop
'***************************************************************************
' Create area charts for each day's Number of Business Processes. *
'***************************************************************************
start_value = 2
end_value = 25
range_value = "='" & objWorkbook.ActiveSheet.Name & "'!$D$" & start_value & ":$D$" & end_value & ""
Do While objWorkbook.ActiveSheet.Cells(end_value,1).Value <> ""
x_value = "='" & objWorkbook.ActiveSheet.Name & "'!$B$" & start_value & ":$B$" & end_value & ""
objWorkbook.ActiveSheet.Shapes.AddChart.Select
objWorkbook.ActiveChart.ChartType = 76
chart_range = "='" & objWorkbook.ActiveSheet.Name & "'!$R$" & start_value & ":$AA$" & end_value & ""
Set RngToCover = objWorkbook.ActiveSheet.Range(chart_range)
Set ChtOb = objWorkbook.ActiveChart.Parent
ChtOb.Height = RngToCover.Height ' resize
ChtOb.Width = RngToCover.Width ' resize
ChtOb.Top = RngToCover.Top ' reposition
ChtOb.Left = RngToCover.Left ' reposition
objWorkbook.ActiveChart.SeriesCollection.NewSeries
objWorkbook.ActiveChart.SeriesCollection(3).Name = "='" & objWorkbook.ActiveSheet.Name & "'!$D$1"
objWorkbook.ActiveChart.SeriesCollection(3).Values = range_value
objWorkbook.ActiveChart.SeriesCollection(4).Delete
objWorkbook.ActiveChart.SeriesCollection(2).Delete
objWorkbook.ActiveChart.SeriesCollection(1).Delete
objWorkbook.ActiveChart.SeriesCollection(1).XValues = x_value
start_value = start_value + 24
end_value = end_value + 24
range_value = "='" & objWorkbook.ActiveSheet.Name & "'!$D$" & start_value & ":$D$" & end_value & ""
Loop
objExcel.ActiveWorkbook.SaveAs Filename:="C:\Num_Doc_BP_2009_test.xlsx", FileFormat:=xlOpenXMLWorkbook
Bookmarks