You were right - I was selecting the labels. I removed the offending code, which solved my problem - in part. Now, on the same 2 graphs the chart area is now selected after the code has run. I believe this my be because I'm activating the area, as per below :-
With chrt
.ChartType = xl3DPie
.SetSourceData Source:=Sheets("GraphData").Range("A2:B" & lastrow)
.SetElement (msoElementLegendRight)
.SetElement (msoElementDataLabelShow)
.SetElement (msoElementDataLabelBestFit)
.SetElement (msoElementChartTitleNone)
.ChartTitle.Text = "Percentage of inv"
.ChartArea.Format.ThreeD.RotationY = 50
.ChartStyle = 26
End With
ActiveSheet.Shapes("Chart 1").Line.Visible = msoFalse
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).DataLabels.ShowPercentage = True
ActiveChart.SeriesCollection(1).DataLabels.ShowSeriesName = False
ActiveChart.SeriesCollection(1).DataLabels.ShowCategoryName = False
ActiveChart.SeriesCollection(1).DataLabels.ShowValue = False
I can't seem to find a way of changing the DataLabels properties without activating the chart.
Is there a way of removing focus from the chart and setting it to cell A1?
Bookmarks