Bonjour,
j'ai une question à propos des graphiques générer par macro vba.
Je peux générer sans problème n'importe quel graphique statique en VBA à partir de Ms Access 2007.
ex:
Code :
Set xlChartObj(4) = xls.Charts.Add
cTypeChart = "Pie Chart"
With xlChartObj(4)
.ChartType = xlPieExploded
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "='Sheet1'!$A$4"
.SeriesCollection(1).Values = "='Sheet1'!$H$4:$J$4"
.SeriesCollection(1).XValues = "='Sheet1'!$H$3:$J$3"
.ApplyLayout (6)
.ChartTitle.Text = "Chart Example"
End With
Pendant que
Code :
Private Sub ChartGenerator(ByRef xls As Application.Excel, ByRef xlChartObj As Excel.Chart, ByVal typeChart As Variant, ByVal titleChart As String, ByVal axisX As String, ByVal axisY As String, ByVal layout As Integer, collectionName, collectionX, collectionXVal)
Dim x As Integer
With xlChartObj
.ChartType = typeChart
.ClearToMatchStyle
For x = 0 To (UBound(collectionName) - 1)
MsgBox "collectionName : " & collectionName(x) & " collectionX : " & collectionX(x) & " collectionXVal : " & collectionXVal(x)
.SeriesCollection(x).Name = collectionName(x)
.SeriesCollection(x).XValues = collectionX(x)
If x = 0 Then
.SeriesCollection(1).XValues = collectionXVal(x)
End If
.SeriesCollection.NewSeries
Next x
.ApplyLayout (layout)
.ChartTitle.Text = titleChart
'Assignation du nom de l'axe des X
.Axes(xlCategory, xlPrimary).AxisTitle.Text = _
axeX
'Assignation du nom de l'axe des Y
.Axes(xlValue, xlPrimary).AxisTitle.Text = _
axeY
End With
End Sub
Tandis que .SeriesCollection(x).XValues = collectionX(x) ne marche pas.
Avez-vous une idée ?