Construire un Graphique composé au nombre de series variable

Bonjour
Je souhaite construire un graphique à partir du tableau suivant :

Le nombre de ligne ( les modalité du "projectno" ) varie
Le graphique doit illustrer la variation de chaque modalité en fonction des mois et si une modalité s ajoute de plus, une nouvelle série doit apparaître automatiquement sur le graphe
Est il possible de le réaliser par excel ou je dois avoir recours au VBA ?
Merci pour votre aide :)

6 réponses

  1. Contributeur
    Bonjour,

    Avant d'ouvrir un nouveau post, il serait préférable de répondre au précédent.

    Cela n'encourage pas de t'aider une nouvelle fois.

    https://forums.commentcamarche.net/forum/affich-32432528-comment-masquer-les-boites-de-dialogues-d-excel#p32432778
    0
    1. Bonjour,
      Je me souviens très bien de vous avoir répondu sauf que mon commentaire n'a pas été envoyé , j' en suis , de même, étonnée
      cordialement
      0
  2. Bonjour

    Pour ajouter une série, je pense que vba est nécessaire
    Un exemple
    http://www.cjoint.com/c/EHApHy001Zn

    Cordialement
    0
    1. Merci pour ton aide :)
      0
    2. Bonjour,
      L ' exemple que tu m'as donné est très intéressant, j ai essayé de l'adapter à ce que je veux puisque, dans mon cas , il n y a que le nombre de lignes qui peut changer et que la graphe doit apparaître dans une autre feuille mais ça ne marche pas
      Voici mon code
      ' Graphe de Projectno
      Option Explicit
      Dim lifin As Integer
      Dim gr As Object, plage As Range
       Sub graphe_projectno()
       With Worksheets(4)
        Set gr = .ChartObjects(1).Chart
        lifin = 68
        Do While Not IsEmpty(Worksheets(3).Cells(lifin, 6))
          lifin = lifin + 1
        Loop
        Set plage = Worksheets(3).Range(Cells(68, 6), Cells(lifin, 18))
        gr.SetSourceData Source:=plage, PlotBy:=xlRows
      End With
      End Sub

      Merci d'avance .
      0
  3. Bonjour

    Dans cet exemple les feuilles données et graphique sont différentes
    http://www.cjoint.com/c/EHBlMhUflfn

    Cordialement
    0
    1. Je fais quelques modifications pour arriver à ce code :
      Public Sub MajGraph()
      Dim gr As Object, plage As Range, lifin As Long
        lifin = lideb
        Do
          lifin = lifin + 1
        Loop Until Worksheets(3).Cells(lifin, 6) = ""
        lifin = lifin - 1
      
        Set plage = Worksheets(3).Range(Cells(lideb, 6), Cells(lifin, 18))
        Set gr = Worksheets(4).ChartObjects(1).Chart
        gr.SetSourceData Source:=plage, PlotBy:=xlRows
      End Sub
       

      mais il m'affiche "erreur 1004 :erreur définie par l'application ou par l'objet " au niveau du la ligne 9
      0
  4. tu n'as pas attribué de valeur à lideb, donc par défaut, lideb = 0
    dans mon exemple, j'avais déclaré lideb = 1 comme constante

    Cdlmnt
    0
    1. J ai attribué une valeur de 68 à "lideb" mais je reçois toujours la même erreur . Je suis vraiment coincée là dessus et je m'excuse pour ce dérangement .
      cordialement
      0
      1. Je ne vois pas ton nouveau code

        Ce code-ci fonctionne
        Il te suffit de changer les valeurs des constantes selon ta configuration (nom des feuilles, N° de lignes et de colonnes) de cette façon, tu n'as pas à toucher au corps de la procédure

        ' modifier les valeurs selon la configuration
        ' feuille données
        Const FD = "Feuil1"  ' nom feuille données
        Const lideb = 1      ' première ligne tableau des données
        Const codeb = 1      ' première colonne tableau des données
        Const cofin = 8      ' dernière colonne tableau des données
        ' feuille graphique
        Const FG = "Feuil2"  ' nom feuille du graphique
        
        Public Sub MajGraph()
        Dim gr As Object, plage As Range, lifin As Long
          lifin = lideb
          Do
            lifin = lifin + 1
          Loop Until Sheets(FD).Cells(lifin, codeb) = ""
          lifin = lifin - 1
          Set plage = Sheets(FD).Range(Cells(lideb, codeb), Cells(lifin, cofin))
          Set gr = Sheets(FG).ChartObjects(1).Chart
          gr.SetSourceData Source:=plage, PlotBy:=xlRows
        End Sub

        Si ça ne va toujours pas, envoies ton fichier (au format excel 2003 si possible) sur cjoint.com et joins le lien obtenu à ton prochain message

        Cordialement
        0
        1. 1. tu peux bien sur changer le nom de la procédure
          2. quand ça plante, passes le curseur sur les variables, tu pourras ainsi avoir leur valeur (actuelle) et voir ce qui ne va pas

          Bon courage
          0
        2. D'accord je vais essayer de le faire
          Merci pour ton aide.
          0