I always find that copying charts is confusing, but it does what you want, I think, and does not use Selects , which is always nice.
Sub CreateAndCopyChart() Dim ws As Worksheet Dim cht As Chart Set ws = ThisWorkbook.Worksheets("Graphs") Set cht = ws.Shapes.AddChart.Chart With cht .SetSourceData ws.Range("$B$21:$C$22") .ChartType = xl3DPie .ChartArea.Copy End With ws.Range("A2").PasteSpecial xlPasteValues cht.Parent.Delete End Sub
source share