Macro création d'un graphique, pb labels abscisses
Bonjour tout le monde,
J'ai fais une macro pour créer des graphiques, qui fonctionne mais une fois mon graphique créé, les labels des abscisses sont une suite de nombre de 0 a n ... Et non les données sélectionnées malgré qu'elles soient présentes dans les data source.
Et le code :
Sub CreateChart()
Dim objChart As ChartObject
Dim ChtRange As Range
Dim DataRange As Range
With ActiveSheet
Dim i As Integer
' Range cover
Set ChtRange = Application.InputBox( _
prompt:="Select a range where the chart should appear.", _
title:="Select Chart Position", Type:=8)
' Data range
Set DataRange = Application.InputBox( _
prompt:="Select a range containing the chart data.", _
title:="Select Chart Data", Type:=8)
' Cover chart range with chart
Set objChart = .ChartObjects.Add( _
Left:=ChtRange.Left, Top:=ChtRange.Top, _
Width:=ChtRange.Width, Height:=ChtRange.Height)
' Chart creation
With objChart.Chart
.ChartArea.AutoScaleFont = False
.ChartType = xlXYScatterLines
.SetSourceData Source:=DataRange
.HasTitle = True
.ChartTitle.Font.Bold = True
.ChartTitle.Font.Size = 12
With .Axes(xlCategory, xlPrimary)
.HasTitle = False
End With
With .Axes(xlValue, xlPrimary)
.HasTitle = False
End With
End With
'Add data labels in bold
For i = 1 To objChart.Chart.SeriesCollection.Count
objChart.Chart.SeriesCollection(i).ApplyDataLabels
objChart.Chart.SeriesCollection(i).DataLabels.Font.Bold = True
objChart.Chart.SeriesCollection(i).DataLabels.Position = xlLabelPositionAbove
Next i
End With
J'ai cherché une solution mais je n'ai rien trouvé, ça doit être juste une ligne à taper dans le code mais faut-il encore savoir quoi taper
Merci d'avance !
bonjour
sais-tu faire le graphique convenable "à la main" sans VBA ?
si oui, alors mets en route l'enregistreur de macro, fais le bon graphique, stoppe l'enregistrement
examine la macro ainsi créée
Merci pour ta réponse,
Oui c'est ce que j'avais fait à la base, mais je n'ai jamais réussi à réutiliser la macro à cause de la ligne suivante :
ActiveSheet.Shapes.AddChart.Select
"Erreur d'execution 1004
Erreur définie par l'application ou par l'objet"
J'ai essayer de modifier cette ligne mais sans grande réussite.
re
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 02/05/2013 par jm
'
'
Range("A1:B4").Select
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B4"), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
ActiveChart.PlotArea.Select
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(1).Delete
ActiveChart.SeriesCollection(1).XValues = "=Feuil1!R2C1:R4C1"
ActiveWindow.Visible = False
Windows("Classeur1").Activate
Range("J38").Select
End Sub
je ne sais pas si ça va t'aider...
par contre, je n'ai pas bien compris ton souci de changement d'abscisses
peux-tu joindre ton fichier avec le graphique avant et le graphique après ?