mariebasile
XLDnaute Nouveau
Bonjour à tous,
j'ai une petite préocupation j'ai écrit la macro suivante pour générer un graphique avec des series que j'ai definie préalablement dans le gestionnaire de noms. j'ai également definit dans la macro deux axes:
-axe_1 lorsque je souhaite afficher mes données par semaine (52 lignes) avec numero de semaines
-axe_2 lorsque je souhaite afficher mes données par mois (12 lignes) c'est la mon problème mon axe ne se redimensionne pas automatiquement. je vous joint ma macro ainsi que les resultats obtenus.
merci infiniment pour vous eclairages
j'ai une petite préocupation j'ai écrit la macro suivante pour générer un graphique avec des series que j'ai definie préalablement dans le gestionnaire de noms. j'ai également definit dans la macro deux axes:
-axe_1 lorsque je souhaite afficher mes données par semaine (52 lignes) avec numero de semaines
-axe_2 lorsque je souhaite afficher mes données par mois (12 lignes) c'est la mon problème mon axe ne se redimensionne pas automatiquement. je vous joint ma macro ainsi que les resultats obtenus.
merci infiniment pour vous eclairages
VB:
Sub graphique_1()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Call delete
Call Definition_serie1
Call Definition_serie2
Call Definition_serie3
Dim m As Long
Dim gr, ws As Worksheet
Dim axe_1, axe_2, pl1, serie1, serie2, serie3, serie4, serie5 As Range
Set gr = Sheets("Graphiques")
Set ws = Sheets("Zone de Contrôle")
Set axe_1 = ws.Range(ws.Cells(7, 38), ws.Cells(59, 38))
Set axe_2 = ws.Range(ws.Cells(5, 117), ws.Cells(16, 117))
m = gr.Cells(2, 2).Value
With gr.ChartObjects("Chart 5").Chart
.ChartType = xlLine
Do Until .SeriesCollection.Count = 0 'boucle supprimant toutes les séries jusqu'à ce qu'on arrive à zéro
.SeriesCollection(1).delete
Loop
End With
If m = 1 Then
Set axe_1 = ws.Range(ws.Cells(7, 38), ws.Cells(59, 38))
gr.ChartObjects("Chart 5").Activate
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = ws.Range("serie1")
ActiveChart.SeriesCollection(1).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = ws.Range("serie2")
ActiveChart.SeriesCollection(2).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Values = ws.Range("serie3")
ActiveChart.SeriesCollection(3).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Values = ws.Range("serie4")
ActiveChart.SeriesCollection(4).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Values = ws.Range("serie5")
ActiveChart.SeriesCollection(5).XValues = axe_1
End If
If m = 2 Then
Set axe_1 = ws.Range(ws.Cells(5, 117), ws.Cells(16, 117))
gr.ChartObjects("Chart 5").Activate
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Values = ws.Range("serie1")
ActiveChart.SeriesCollection(1).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = ws.Range("serie2")
ActiveChart.SeriesCollection(2).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Values = ws.Range("serie3")
ActiveChart.SeriesCollection(3).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Values = ws.Range("serie4")
ActiveChart.SeriesCollection(4).XValues = axe_1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Values = ws.Range("serie5")
ActiveChart.SeriesCollection(5).XValues = axe_1
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Call Parcourir
End Sub