Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
Hi,
I have recorded the following... Sub Macro4() ' ' Macro4 Macro ' Macro recorded 23/02/2007 by Dan ' ' Keyboard Shortcut: Ctrl+f ' Columns("A:B").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveWindow.Visible = False Windows("Master data.xls").Activate End Sub ....this allows me to quickly plot a chart from the current sheet. How do I specify that I want the chart as an object within the current sheet? I removed the line... ActiveChart.Location Whe=xlLocationAsObject, Name:="20305A.TXT" ....after I recorded the macro as it only places each graph in the original worksheet, not the one I am working in. My book contains many sheets of data. Can anyone please advise how I can change the macro above to work so that I can go to any worksheet and run the macro, producing a plot of the data on that sheet as an object in that sheet. Cheers, Dan |
#2
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
Hi,
How about this, Dim rngAC As Range Set rngAC = ActiveCell Columns("A:B").Select With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With .Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With .Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name End With Cheers Andy Dr Dan wrote: Hi, I have recorded the following... Sub Macro4() ' ' Macro4 Macro ' Macro recorded 23/02/2007 by Dan ' ' Keyboard Shortcut: Ctrl+f ' Columns("A:B").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveWindow.Visible = False Windows("Master data.xls").Activate End Sub ...this allows me to quickly plot a chart from the current sheet. How do I specify that I want the chart as an object within the current sheet? I removed the line... ActiveChart.Location Whe=xlLocationAsObject, Name:="20305A.TXT" ...after I recorded the macro as it only places each graph in the original worksheet, not the one I am working in. My book contains many sheets of data. Can anyone please advise how I can change the macro above to work so that I can go to any worksheet and run the macro, producing a plot of the data on that sheet as an object in that sheet. Cheers, Dan -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
#3
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
Thanks Andy, works great! :)
"Andy Pope" wrote: Hi, How about this, Dim rngAC As Range Set rngAC = ActiveCell Columns("A:B").Select With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With .Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With .Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name End With Cheers Andy Dr Dan wrote: Hi, I have recorded the following... Sub Macro4() ' ' Macro4 Macro ' Macro recorded 23/02/2007 by Dan ' ' Keyboard Shortcut: Ctrl+f ' Columns("A:B").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveWindow.Visible = False Windows("Master data.xls").Activate End Sub ...this allows me to quickly plot a chart from the current sheet. How do I specify that I want the chart as an object within the current sheet? I removed the line... ActiveChart.Location Whe=xlLocationAsObject, Name:="20305A.TXT" ...after I recorded the macro as it only places each graph in the original worksheet, not the one I am working in. My book contains many sheets of data. Can anyone please advise how I can change the macro above to work so that I can go to any worksheet and run the macro, producing a plot of the data on that sheet as an object in that sheet. Cheers, Dan -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
#4
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
I prefer
Dim chtob As ChartObject Set chtob = ActiveSheet.ChartObjects.Add(Left, Top, Width, Height) ' where Left, etc., are coordinates in points With chtob.Chart ' do your stuff here End With - Jon ------- Jon Peltier, Microsoft Excel MVP Tutorials and Custom Solutions http://PeltierTech.com _______ "Dr Dan" wrote in message ... Thanks Andy, works great! :) "Andy Pope" wrote: Hi, How about this, Dim rngAC As Range Set rngAC = ActiveCell Columns("A:B").Select With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With .Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With .Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name End With Cheers Andy Dr Dan wrote: Hi, I have recorded the following... Sub Macro4() ' ' Macro4 Macro ' Macro recorded 23/02/2007 by Dan ' ' Keyboard Shortcut: Ctrl+f ' Columns("A:B").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveWindow.Visible = False Windows("Master data.xls").Activate End Sub ...this allows me to quickly plot a chart from the current sheet. How do I specify that I want the chart as an object within the current sheet? I removed the line... ActiveChart.Location Whe=xlLocationAsObject, Name:="20305A.TXT" ...after I recorded the macro as it only places each graph in the original worksheet, not the one I am working in. My book contains many sheets of data. Can anyone please advise how I can change the macro above to work so that I can go to any worksheet and run the macro, producing a plot of the data on that sheet as an object in that sheet. Cheers, Dan -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
#5
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
So do I Jon, if I know how and where the chart should be sized.
Cheers Andy Jon Peltier wrote: I prefer Dim chtob As ChartObject Set chtob = ActiveSheet.ChartObjects.Add(Left, Top, Width, Height) ' where Left, etc., are coordinates in points With chtob.Chart ' do your stuff here End With - Jon ------- Jon Peltier, Microsoft Excel MVP Tutorials and Custom Solutions http://PeltierTech.com _______ "Dr Dan" wrote in message ... Thanks Andy, works great! :) "Andy Pope" wrote: Hi, How about this, Dim rngAC As Range Set rngAC = ActiveCell Columns("A:B").Select With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With .Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With .Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name End With Cheers Andy Dr Dan wrote: Hi, I have recorded the following... Sub Macro4() ' ' Macro4 Macro ' Macro recorded 23/02/2007 by Dan ' ' Keyboard Shortcut: Ctrl+f ' Columns("A:B").Select Charts.Add ActiveChart.ChartType = xlXYScatterSmoothNoMarkers With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveWindow.Visible = False Windows("Master data.xls").Activate End Sub ...this allows me to quickly plot a chart from the current sheet. How do I specify that I want the chart as an object within the current sheet? I removed the line... ActiveChart.Location Whe=xlLocationAsObject, Name:="20305A.TXT" ...after I recorded the macro as it only places each graph in the original worksheet, not the one I am working in. My book contains many sheets of data. Can anyone please advise how I can change the macro above to work so that I can go to any worksheet and run the macro, producing a plot of the data on that sheet as an object in that sheet. Cheers, Dan -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
#6
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
I've tried to add what you both suggested was ideal, but I'm getting and
'expected End With' error... see below What have I done wrong? Cheers Chaps, Dan Sub Macro7() ' ' Macro7 Macro ' Macro recorded 23/02/2007 by School of Chemistry ' ' Keyboard Shortcut: Ctrl+j ' Dim chtob As ChartObject Set chtob = ActiveSheet.ChartObjects.Add(100, 100, 500, 400) ' where Left, etc., are coordinates in points With chtob.Chart With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "time / s" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "current / A" End With With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveChart.HasLegend = False ActiveChart.PlotArea.Select Selection.ClearFormats ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name Range("A1").Select End Sub |
#7
![]()
Posted to microsoft.public.excel.charting
|
|||
|
|||
![]()
hmm. It's really one way or the other not both.
If you add a chartobject directly to the worksheet then you don't need to change it's location. Also you don't need the Activechart reference when using the With chtob.Chart Sub Macro7() ' ' Macro7 Macro ' Macro recorded 23/02/2007 by School of Chemistry ' ' Keyboard Shortcut: Ctrl+j ' Dim chtob As ChartObject Set chtob = ActiveSheet.ChartObjects.Add(100, 100, 500, 400) ' where Left, etc., are coordinates in points With chtob.Chart .ChartType = xlXYScatterSmoothNoMarkers .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "time / s" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "current / A" With .Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With .Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With .HasLegend = False .PlotArea.ClearFormats .Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With .Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With End With Range("A1").Select End Sub Dr Dan wrote: I've tried to add what you both suggested was ideal, but I'm getting and 'expected End With' error... see below What have I done wrong? Cheers Chaps, Dan Sub Macro7() ' ' Macro7 Macro ' Macro recorded 23/02/2007 by School of Chemistry ' ' Keyboard Shortcut: Ctrl+j ' Dim chtob As ChartObject Set chtob = ActiveSheet.ChartObjects.Add(100, 100, 500, 400) ' where Left, etc., are coordinates in points With chtob.Chart With Charts.Add .ChartType = xlXYScatterSmoothNoMarkers With ActiveChart .HasTitle = False .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "time / s" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "current / A" End With With ActiveChart.Axes(xlCategory) .HasMajorGridlines = False .HasMinorGridlines = False End With With ActiveChart.Axes(xlValue) .HasMajorGridlines = False .HasMinorGridlines = False End With ActiveChart.HasLegend = False ActiveChart.PlotArea.Select Selection.ClearFormats ActiveChart.Axes(xlValue).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With ActiveChart.Axes(xlCategory).AxisTitle.Select Selection.AutoScaleFont = True With Selection.Font .Name = "Arial" .FontStyle = "Regular" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic .Background = xlAutomatic End With .Location Whe=xlLocationAsObject, Name:=rngAC.Parent.Name Range("A1").Select End Sub -- Andy Pope, Microsoft MVP - Excel http://www.andypope.info |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Indicate the location file on the work sheet | Excel Worksheet Functions | |||
UDF is updateing cells on another sheet with count from current sheet. | Excel Discussion (Misc queries) | |||
Track Mouse Location In a Sheet VBA | Excel Discussion (Misc queries) | |||
location of chart | Charts and Charting in Excel | |||
Can't save chart as object in current sheet | Charts and Charting in Excel |