ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to create chart using VB 6.0 (https://www.excelbanter.com/excel-programming/364504-how-create-chart-using-vbulletin-6-0-a.html)

Tomasz Klim[_2_]

How to create chart using VB 6.0
 
Hi

I try to create a simple line-chart from external program in Visual Basic
6.0. I already generate a quite complex Excel sheet without problems, but
when I try to add chart into this sheet, I don't see anything.

Can you check my code in case of errors? In general, when I created this
code, I followed Macro Recorder and existing code (dynamic series updating
on existing chart).


oExcel.GetWorkbook.Sheets("Main_Wykres").Charts.Ad d
With oExcel.GetExcel.ActiveChart
.ChartType = xlLine
.SetSourceData
Source:=oExcel.GetWorkbook.Sheets("Main_Macierz"). Range("B2:AK16"),
PlotBy:=xlRows
.SeriesCollection(1).Name = Cells(2, 1)
.SeriesCollection(1).XValues = Range("B1:AK1")

For intSeria = 2 To 16
.SeriesCollection.NewSeries.Name = Cells(intSeria, 1)
.SeriesCollection.NewSeries.XValues = Range("B1", "AK1")
.SeriesCollection.NewSeries.Values = Range("B" & intSeria &
":AK" & intSeria)
Next

.Location Whe=xlLocationAsNewSheet
'.Location Whe=xlLocationAsObject, Name:="Main_Wykres"
.HasTitle = True
.ChartTitle.Text = "Multi Trend"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False

.Refresh
End With



Tom Ogilvy

How to create chart using VB 6.0
 
These articles show how to do it from Access - it would be the same from VB6.
Looking at your code, your GetExcel and GetWorkbook commands don't sound
like anything you would use in VB6.

http://support.microsoft.com/default...b;en-us;184273
ACC97: How to Use Automation to Create a Microsoft Excel Chart

http://support.microsoft.com/default...b;en-us;202169
ACC2000: Using Automation to Create a Microsoft Excel Chart
(Pretty much the same article as above)

--
Regards,
Tom Ogilvy


"Tomasz Klim" wrote:

Hi

I try to create a simple line-chart from external program in Visual Basic
6.0. I already generate a quite complex Excel sheet without problems, but
when I try to add chart into this sheet, I don't see anything.

Can you check my code in case of errors? In general, when I created this
code, I followed Macro Recorder and existing code (dynamic series updating
on existing chart).


oExcel.GetWorkbook.Sheets("Main_Wykres").Charts.Ad d
With oExcel.GetExcel.ActiveChart
.ChartType = xlLine
.SetSourceData
Source:=oExcel.GetWorkbook.Sheets("Main_Macierz"). Range("B2:AK16"),
PlotBy:=xlRows
.SeriesCollection(1).Name = Cells(2, 1)
.SeriesCollection(1).XValues = Range("B1:AK1")

For intSeria = 2 To 16
.SeriesCollection.NewSeries.Name = Cells(intSeria, 1)
.SeriesCollection.NewSeries.XValues = Range("B1", "AK1")
.SeriesCollection.NewSeries.Values = Range("B" & intSeria &
":AK" & intSeria)
Next

.Location Whe=xlLocationAsNewSheet
'.Location Whe=xlLocationAsObject, Name:="Main_Wykres"
.HasTitle = True
.ChartTitle.Text = "Multi Trend"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False

.Refresh
End With




april27

How to create chart using VB 6.0
 
yes thankx. but my problem is that i just dont know how to refer to cell
"dynamically". e.g. in the example you refered to they write:

Source:=Sheets("Sheet1").Range("C3").CurrentRegion

what i want to know is how you refer to a cell in antother way than Range.
since my cell is variable I want to refer to it in a way so that i can write
(this is not really code im just saying what i want to do..)

(x,y) = rng.Address -----i.e. get the adress from a cell and store it in x
and y. x for rows and y columns or vice versa.
then i want to e.g. add 3 to rows i want to write: x=x+3
making the chart then is easy if you can refer to it as Range(x,y). There is
a function Cells or something but i really dont know how to fix it.
desperatly needs help. !!!!




"Tom Ogilvy" skrev:

These articles show how to do it from Access - it would be the same from VB6.
Looking at your code, your GetExcel and GetWorkbook commands don't sound
like anything you would use in VB6.

http://support.microsoft.com/default...b;en-us;184273
ACC97: How to Use Automation to Create a Microsoft Excel Chart

http://support.microsoft.com/default...b;en-us;202169
ACC2000: Using Automation to Create a Microsoft Excel Chart
(Pretty much the same article as above)

--
Regards,
Tom Ogilvy


"Tomasz Klim" wrote:

Hi

I try to create a simple line-chart from external program in Visual Basic
6.0. I already generate a quite complex Excel sheet without problems, but
when I try to add chart into this sheet, I don't see anything.

Can you check my code in case of errors? In general, when I created this
code, I followed Macro Recorder and existing code (dynamic series updating
on existing chart).


oExcel.GetWorkbook.Sheets("Main_Wykres").Charts.Ad d
With oExcel.GetExcel.ActiveChart
.ChartType = xlLine
.SetSourceData
Source:=oExcel.GetWorkbook.Sheets("Main_Macierz"). Range("B2:AK16"),
PlotBy:=xlRows
.SeriesCollection(1).Name = Cells(2, 1)
.SeriesCollection(1).XValues = Range("B1:AK1")

For intSeria = 2 To 16
.SeriesCollection.NewSeries.Name = Cells(intSeria, 1)
.SeriesCollection.NewSeries.XValues = Range("B1", "AK1")
.SeriesCollection.NewSeries.Values = Range("B" & intSeria &
":AK" & intSeria)
Next

.Location Whe=xlLocationAsNewSheet
'.Location Whe=xlLocationAsObject, Name:="Main_Wykres"
.HasTitle = True
.ChartTitle.Text = "Multi Trend"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False

.Refresh
End With




Tom Ogilvy

How to create chart using VB 6.0
 
assuming rng is a reference to a single cell, for illustration, assume C3

rng.resize(3,1) ' C3:C5

rng.offset(1,0) ' C4

rng.offset(1,0).Resize(3,1) 'C4:C6

--
Regards,
Tom Ogilvy


"april27" wrote:

yes thankx. but my problem is that i just dont know how to refer to cell
"dynamically". e.g. in the example you refered to they write:

Source:=Sheets("Sheet1").Range("C3").CurrentRegion

what i want to know is how you refer to a cell in antother way than Range.
since my cell is variable I want to refer to it in a way so that i can write
(this is not really code im just saying what i want to do..)

(x,y) = rng.Address -----i.e. get the adress from a cell and store it in x
and y. x for rows and y columns or vice versa.
then i want to e.g. add 3 to rows i want to write: x=x+3
making the chart then is easy if you can refer to it as Range(x,y). There is
a function Cells or something but i really dont know how to fix it.
desperatly needs help. !!!!




"Tom Ogilvy" skrev:

These articles show how to do it from Access - it would be the same from VB6.
Looking at your code, your GetExcel and GetWorkbook commands don't sound
like anything you would use in VB6.

http://support.microsoft.com/default...b;en-us;184273
ACC97: How to Use Automation to Create a Microsoft Excel Chart

http://support.microsoft.com/default...b;en-us;202169
ACC2000: Using Automation to Create a Microsoft Excel Chart
(Pretty much the same article as above)

--
Regards,
Tom Ogilvy


"Tomasz Klim" wrote:

Hi

I try to create a simple line-chart from external program in Visual Basic
6.0. I already generate a quite complex Excel sheet without problems, but
when I try to add chart into this sheet, I don't see anything.

Can you check my code in case of errors? In general, when I created this
code, I followed Macro Recorder and existing code (dynamic series updating
on existing chart).


oExcel.GetWorkbook.Sheets("Main_Wykres").Charts.Ad d
With oExcel.GetExcel.ActiveChart
.ChartType = xlLine
.SetSourceData
Source:=oExcel.GetWorkbook.Sheets("Main_Macierz"). Range("B2:AK16"),
PlotBy:=xlRows
.SeriesCollection(1).Name = Cells(2, 1)
.SeriesCollection(1).XValues = Range("B1:AK1")

For intSeria = 2 To 16
.SeriesCollection.NewSeries.Name = Cells(intSeria, 1)
.SeriesCollection.NewSeries.XValues = Range("B1", "AK1")
.SeriesCollection.NewSeries.Values = Range("B" & intSeria &
":AK" & intSeria)
Next

.Location Whe=xlLocationAsNewSheet
'.Location Whe=xlLocationAsObject, Name:="Main_Wykres"
.HasTitle = True
.ChartTitle.Text = "Multi Trend"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False

.Refresh
End With





All times are GMT +1. The time now is 12:18 PM.

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