I thought to make a macro to make chart moving/position a bit easier however my macro currently is quite arduous and slow - i'm sure this is a more efficient way of doing this!
The problem - I have 2 spreadsheets, plots and plotspdf. Plots spreadsheet has, say 10 charts, and the other (plotspdf) is blank. I want the macro to move a select few charts (for arguments sake lets say 1, 3, 5 and 8) to the other spreadsheet using a simple copy paste. Then I want to change the font size to 8 and format (height and width) of each chart to 7cm X 13cm. Finally, I want to reposition the charts so that they fit nicely on the page - for example Chart 1 is moving to cell A1; Chart 3 is moved to cell G35, etc etc.
This is what I currently have... is there a way to make this code a bit neater/more efficient. Thank you in advance.
Sub ArrangeCharts()
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.Shapes.Range(Array("Chart 1", "Chart 2")).Select
ActiveSheet.Shapes.Range(Array("Chart 1", "Chart 2", "Chart 3")).Select
ActiveSheet.Shapes.Range(Array("Chart 1", "Chart 2", "Chart 3", "Chart 4")).Select
Selection.Copy
Sheets("plotspdf").Select
Range("A2").Select
ActiveSheet.Paste
Selection.ShapeRange.Height = 198.4251968504
Selection.ShapeRange.Width = 255.1181102362
Range("E7").Select
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveSheet.Shapes.Range(Array("Chart 4", "Chart 5")).Select
ActiveSheet.Shapes.Range(Array("Chart 4", "Chart 5", "Chart 6")).Select
Range("E4").Select
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveSheet.Shapes("Chart 4").TextFrame2.TextRange.Font.Size = 8
ActiveSheet.ChartObjects("Chart 5").Activate
ActiveSheet.Shapes("Chart 5").TextFrame2.TextRange.Font.Size = 8
ActiveSheet.ChartObjects("Chart 6").Activate
ActiveSheet.Shapes("Chart 6").TextFrame2.TextRange.Font.Size = 8
ActiveSheet.ChartObjects("Chart 7").Activate
ActiveSheet.Shapes("Chart 7").TextFrame2.TextRange.Font.Size = 8
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveSheet.ChartObjects("Chart 4").Activate
ActiveSheet.Shapes("Chart 4").IncrementLeft 62
ActiveSheet.Shapes("Chart 4").IncrementTop 12
ActiveSheet.ChartObjects("Chart 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Chart 5").IncrementLeft -125
ActiveSheet.Shapes("Chart 5").IncrementTop 228
ActiveSheet.ChartObjects("Chart 7").Activate
ActiveSheet.Shapes("Chart 7").IncrementLeft -269
ActiveSheet.Shapes("Chart 7").IncrementTop 174
ActiveSheet.ChartObjects("Chart 7").Activate
ActiveSheet.Shapes("Chart 7").IncrementLeft -48
ActiveSheet.Shapes("Chart 7").IncrementTop 16
End Sub