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 ?

Je pense que ça va m'aider, je teste ça demain au boulo,

Merci encore.

Rechercher des sujets similaires à "macro creation graphique labels abscisses"