Construire un Graphique composé au nombre de series variable
RaihanaTag
Messages postés
18
Statut
Membre
-
RaihanaTag Messages postés 18 Statut Membre -
RaihanaTag Messages postés 18 Statut Membre -
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 :)
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
-
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
-
Bonjour
Pour ajouter une série, je pense que vba est nécessaire
Un exemple
http://www.cjoint.com/c/EHApHy001Zn
Cordialement-
-
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 .
-
-
Bonjour
Dans cet exemple les feuilles données et graphique sont différentes
http://www.cjoint.com/c/EHBlMhUflfn
Cordialement-
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
-
-
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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