1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| Option Explicit ' Chart avec deux series de valeurs
Sub ChartPivotData()
Dim ChartObj As ChartObject, rngXValues As Range
Set rngXValues = Sheets("Data").Range("A2:A53")
Worksheets("Essai pivot1").Activate
Set ChartObj = ActiveSheet.ChartObjects.Add(Left:=100, Width:=800, Top:=75, Height:=325)
With ChartObj
.Chart.ChartType = xlLine ' Déclarer le type en premier
CleanSeriesColl ChartObj.Chart ' dans le cas où il y a des series par défaut
With .Chart.SeriesCollection.NewSeries
.Values = Sheets("Essai pivot1").Range("B3:B54")
.XValues = rngXValues
.Name = "2011"
.Border.Weight = xlMedium
End With
With .Chart.SeriesCollection.NewSeries
.Values = Sheets("Data").Range("H2:H53")
.XValues = rngXValues
.Name = "2010"
.Border.Weight = xlMedium
End With
.Chart.HasDataTable = False
.Chart.Legend.Position = xlLegendPositionBottom
.Chart.HasTitle = True
.Chart.ChartTitle.Text = "Pivot Data"
.Chart.PlotArea.Interior.ColorIndex = 0 'White
.Chart.Axes(xlValue).MaximumScale = 40
.Chart.Axes(xlValue).MinimumScale = 28
End With
End Sub
Private Sub CleanSeriesColl(ChartObj As Chart)
With ChartObj
On Error Resume Next
Do
.SeriesCollection(1).Delete
If Err.Number > 0 Then Exit Do
Loop Until False
On Error GoTo 0
End With
End Sub
Sub ChartDelete()
With ActiveSheet.ChartObjects
While .Count > 0
CleanSeriesColl .Item(1).Chart
.Item(1).Delete
Wend
End With
End Sub |
Partager