Construction d'un graphique

Résolu
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -  
Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      Le code peut-il créer cette feuille également?
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      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. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Kuartz Messages postés 852 Date d'inscription   Statut Membre Dernière intervention   65
       
      Merci de votre aide :)

      Cordialement.
      0