Construction d'un graphique

Résolu
Bonjour,

Une demande assez simple mais que je n'arrive à exécuter...

Je voudrais créer un graphique extrêmement simple.

J'ai un tableau excel avec en A les valeurs S1, S2, S3...

En face, en colonne B, les valeurs 10%, 20%, 30%...

Voici mon code :

Set objRange = Worksheets("Données").Range(Worksheets("Données").Cells(1, 1), Worksheets("Données").Cells(DL2, 2))
    Set objChart = ThisWorkbook.Charts.Add
    objChart.ChartType = xlXYScatterLines
    objChart.SetSourceData objRange, xlColumns


Le graphique a l'air de fonctionner mais en abscisse, j'ai 1, 1.5, 2. Pourquoi je ne retrouve pas mes S1, S2, S3??

Pourtant si on suit le raisonnement de https://excel.developpez.com/faq/?page=Graphique

Merci de votre aide.

Cordialement.

5 réponses

  1. Bonjour

    Je pense que ton problème vient du fait que tu as choisi le type nuage de poins qui nécessite des abscisse numériques

    Cdlmnt
    0
    1. D'accord merci. Dans ce cas, vous avez une idée pour avoir un graphique de type courbe où mes abscisses pourraient fonctionner?
      0
    2. Je viens de tester avec un Right(...) pour n'avoir que les valeurs numériques et vous avez raison. Mais bon... Je n'ai franchement pas besoin des 0.5 entre les valeurs dans le graphique....
      0
  2. Pour un type courbe

    Sub gr()
    Dim objRange As Range
    With Sheets("Feuil1")
    Set objRange = .Range("A2:B4")
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=objRange
    End With
    End Sub

    Cdlmnt
    0
    1. Re,

      Cette ligne :

      ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"


      Plante, j'ai mis le nom "Graphique".

      "La méthode 'Location de l'objet_Chart' a échoué"
      0
  3. ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"

    "Feuil1" est le nom de la feuille qui va recevoir le graphique
    Un exemple
    http://www.cjoint.com/c/EJnoditNDAt
    0
    1. Le code peut-il créer cette feuille également?
      0
  4. Oui

    Sub gr()
    Dim objRange As Range
    Sheets.Add
    ActiveSheet.Name = "Graphique"
    With Sheets("Feuil1")
    Set objRange = .Range("A2:B4")
    Charts.Add
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique"
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=objRange
    End With
    End Sub

    Cdlmnt
    0
    1. Re,

      Merci pour toutes ces informations !

      Par contre les données ne sont pas du tout bonnes...

      J'ai en A 37, 38, 39, 40.

      J'ai en B 18%, 11%, 54%, 19%

      Le graphique me donne :

      En abscisse : 1, 2, 3, 4, 5

      En ordonnée : 0, 5, 10, 15, 20, 25, 30, 35, 40

      J'aurais voulu avoir en abscisse 37, 38, 39, 40

      En ordonnée : 18% 11% 54% 19%

      Cordialement.
      0
  5. Du moment que tes abscisses sont numériques, choisis le type nuage de points (xlXYScatterLines) au lieu du type courbe (xlLineMarkers), tu auras une vraie échelle sur 'axe horizontal

    http://www.cjoint.com/c/EJnoQcFTOQt

    Là, je plie boutique

    Cdlmnt
    0
    1. Merci de votre aide :)

      Cordialement.
      0