Maybe something like this...
Option Explicit
Sub test()
Dim ChrtObj As ChartObject
Dim MySeries As Series
Dim LeftPos As Long
Dim TopPos As Long
Dim LastCol As Long
Dim i As Long
LeftPos = 50
TopPos = 75
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To LastCol
Set ChrtObj = ActiveSheet.ChartObjects.Add(LeftPos, TopPos, 360, 215)
With ChrtObj.Chart
.ChartType = xlPie
Set MySeries = .SeriesCollection.NewSeries
With MySeries
.XValues = Range(Cells(2, "a"), Cells(3, "a"))
.Values = Range(Cells(2, i), Cells(3, i))
.Name = Cells(1, i).Value
.ApplyDataLabels Type:=xlDataLabelsShowValue
.DataLabels.NumberFormat = "#,##0"
End With
LeftPos = .Parent.Left + .Parent.Width + 15
End With
Next i
End Sub
Bookmarks