Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 105
Default Simplest Question

Hi everyone

I have this macro below that creates charts automatically and it works
so far with no problems. I have 4 sheets Sheets("V","$","RU","Chart")
Currently all the charts gets created below the actual data sheet
"$".

Q: How do I alter or add to this macro in order to make the chart in
sheets("Chart") instead of sheets("$") ?

Thanks alot for your help.

regards,

James


Sub Graph()

Dim L As Single, T As Single, W As Single, H As Single
Dim i As Long, cnt As Long
Dim X As Long, xx As Long, lastRow As Long
Dim gap As Single
Dim co As ChartObject
Dim cht As Chart
Dim sr As Series
Dim rng As Range, cell As Range
'Dim ws As Worksheets

' ( Preset Options )

gap = 12
W = 320
H = 300
X = 4

Set ws = ActiveWorkbook.Worksheets("$")

Set rng = ws.Range("A6")
lastRow = rng.End(xlDown).Row
If lastRow < ws.Rows.Count Then
Set rng = rng.Resize(lastRow - rng.Row + 1, 1)
End If

' ( Deletion of previous charts )
' ws.ChartObjects.Delete


L = gap
T = rng.Cells(rng.Count + 2).Top + gap

For Each cell In rng

Set cht = ws.ChartObjects.Add(L, T, W, H).Chart
With cht
.ChartArea.Font.Size = 10
.ChartType = xlLine
.ChartArea.Interior.ColorIndex = 15
.ChartArea.Interior.PatternColorIndex = 1
.ChartArea.Interior.Pattern = 1
.ChartArea.Border.Weight = 1
.ChartArea.Border.LineStyle = -1



Set sr = .SeriesCollection.NewSeries
sr.Name = cell.Value
sr.XValues = ws.Range("B5:AQ5")
sr.Values = cell.Offset(, 1).Resize(,
ws.Range("B5:AQ5").Columns.Count)
'.Address(,,xlr1c1)
sr.Border.ColorIndex = 3
sr.Border.Weight = xlMedium
sr.Border.LineStyle = xlContinuous

.HasTitle = True
.ChartTitle.Text = "=" & cell.Address(, , xlR1C1, True)
.HasLegend = False 'Legend part

.PlotArea.Border.ColorIndex = 16
.PlotArea.Border.Weight = xlThin
.PlotArea.Border.LineStyle = xlContinuous
.PlotArea.Interior.ColorIndex = 1
.PlotArea.Interior.PatternColorIndex = 1
.PlotArea.Interior.Pattern = xlSolid

End With

L = L + W + gap
xx = xx + 1
If xx = X Then
xx = 0
L = gap
T = T + H + gap

End If
Next


End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default Simplest Question

from

Set ws = ActiveWorkbook.Worksheets("$")

to

Set ws = ActiveWorkbook.Worksheets("Chart")

"James8309" wrote:

Hi everyone

I have this macro below that creates charts automatically and it works
so far with no problems. I have 4 sheets Sheets("V","$","RU","Chart")
Currently all the charts gets created below the actual data sheet
"$".

Q: How do I alter or add to this macro in order to make the chart in
sheets("Chart") instead of sheets("$") ?

Thanks alot for your help.

regards,

James


Sub Graph()

Dim L As Single, T As Single, W As Single, H As Single
Dim i As Long, cnt As Long
Dim X As Long, xx As Long, lastRow As Long
Dim gap As Single
Dim co As ChartObject
Dim cht As Chart
Dim sr As Series
Dim rng As Range, cell As Range
'Dim ws As Worksheets

' ( Preset Options )

gap = 12
W = 320
H = 300
X = 4

Set ws = ActiveWorkbook.Worksheets("$")

Set rng = ws.Range("A6")
lastRow = rng.End(xlDown).Row
If lastRow < ws.Rows.Count Then
Set rng = rng.Resize(lastRow - rng.Row + 1, 1)
End If

' ( Deletion of previous charts )
' ws.ChartObjects.Delete


L = gap
T = rng.Cells(rng.Count + 2).Top + gap

For Each cell In rng

Set cht = ws.ChartObjects.Add(L, T, W, H).Chart
With cht
.ChartArea.Font.Size = 10
.ChartType = xlLine
.ChartArea.Interior.ColorIndex = 15
.ChartArea.Interior.PatternColorIndex = 1
.ChartArea.Interior.Pattern = 1
.ChartArea.Border.Weight = 1
.ChartArea.Border.LineStyle = -1



Set sr = .SeriesCollection.NewSeries
sr.Name = cell.Value
sr.XValues = ws.Range("B5:AQ5")
sr.Values = cell.Offset(, 1).Resize(,
ws.Range("B5:AQ5").Columns.Count)
'.Address(,,xlr1c1)
sr.Border.ColorIndex = 3
sr.Border.Weight = xlMedium
sr.Border.LineStyle = xlContinuous

.HasTitle = True
.ChartTitle.Text = "=" & cell.Address(, , xlR1C1, True)
.HasLegend = False 'Legend part

.PlotArea.Border.ColorIndex = 16
.PlotArea.Border.Weight = xlThin
.PlotArea.Border.LineStyle = xlContinuous
.PlotArea.Interior.ColorIndex = 1
.PlotArea.Interior.PatternColorIndex = 1
.PlotArea.Interior.Pattern = xlSolid

End With

L = L + W + gap
xx = xx + 1
If xx = X Then
xx = 0
L = gap
T = T + H + gap

End If
Next


End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 239
Default Simplest Question

On Jul 18, 10:21*am, James8309 wrote:
Hi everyone

I have this macro below that creates charts automatically and it works
so far with no problems. I have 4 sheets Sheets("V","$","RU","Chart")
Currently all the charts gets created below the actual data sheet
"$".

Q: How do I alter or add to this macro in order to make the chart in
sheets("Chart") instead of sheets("$") ?

Thanks alot for your *help.

regards,

James

Sub Graph()

Dim L As Single, T As Single, W As Single, H As Single
Dim i As Long, cnt As Long
Dim X As Long, xx As Long, lastRow As Long
Dim gap As Single
Dim co As ChartObject
Dim cht As Chart
Dim sr As Series
Dim rng As Range, cell As Range
'Dim ws As Worksheets

' ( Preset Options )

gap = 12
W = 320
H = 300
X = 4

* * Set ws = ActiveWorkbook.Worksheets("$")

* * *Set rng = ws.Range("A6")
* * lastRow = rng.End(xlDown).Row
* * If lastRow < ws.Rows.Count Then
* * * * Set rng = rng.Resize(lastRow - rng.Row + 1, 1)
* * End If

' ( Deletion of previous charts )
' ws.ChartObjects.Delete

L = gap
T = rng.Cells(rng.Count + 2).Top + gap

For Each cell In rng

* * Set cht = ws.ChartObjects.Add(L, T, W, H).Chart
* * With cht
* * * * .ChartArea.Font.Size = 10
* * * * .ChartType = xlLine
* * * * .ChartArea.Interior.ColorIndex = 15
* * * * .ChartArea.Interior.PatternColorIndex = 1
* * * * .ChartArea.Interior.Pattern = 1
* * * * .ChartArea.Border.Weight = 1
* * * * .ChartArea.Border.LineStyle = -1

* * * * Set sr = .SeriesCollection.NewSeries
* * * * sr.Name = cell.Value
* * * * sr.XValues = ws.Range("B5:AQ5")
* * * * sr.Values = cell.Offset(, 1).Resize(,
ws.Range("B5:AQ5").Columns.Count)
* * '.Address(,,xlr1c1)
* * * * sr.Border.ColorIndex = 3
* * * * sr.Border.Weight = xlMedium
* * * * sr.Border.LineStyle = xlContinuous

* * * * .HasTitle = True
* * * * .ChartTitle.Text = "=" & cell.Address(, , xlR1C1, True)
* * * * .HasLegend = False 'Legend part

* * * * .PlotArea.Border.ColorIndex = 16
* * * * .PlotArea.Border.Weight = xlThin
* * * * .PlotArea.Border.LineStyle = xlContinuous
* * * * .PlotArea.Interior.ColorIndex = 1
* * * * .PlotArea.Interior.PatternColorIndex = 1
* * * * .PlotArea.Interior.Pattern = xlSolid

* * End With

* * L = L + W + gap
* * xx = xx + 1
* * If xx = X Then
* * *xx = 0
* * *L = gap
* * *T = T + H + gap

* * End If
Next

End Sub


Hi,
Replace following line.
Set cht = ws.ChartObjects.Add(L, T, W, H).Chart
with
Set cht = sheets("Chart").ChartObjects.Add(L, T, W, H).Chart

Regards,
Madiya
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
What is the simplest IPC from Excel VBA to a .NET app? John Brock Excel Discussion (Misc queries) 5 November 9th 09 10:59 PM
Simplest Question James8309 Charts and Charting in Excel 2 July 21st 08 12:02 AM
Simplest way to alphabetize sheet tabs Bro23 Excel Discussion (Misc queries) 3 June 21st 06 07:57 PM
What is the simplest way famdamly Excel Discussion (Misc queries) 4 February 16th 06 10:23 PM
Creating simplest Excel Hangman nauman612[_2_] Excel Programming 3 December 12th 05 07:26 PM


All times are GMT +1. The time now is 09:32 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"