Créer un graphique pour chaque ligne d'un tableau (Macro)

Bonjour,

J'ai 24 graphiques de type ligne (courbe) à faire sur 20 feuilles de calcul.

Est-il possible de faire une macro pour faciliter le boulot?

J'ai ajouté un fichier en pièce jointe afin de montrer un exemple concret.

Merci d'avance pour votre aide

119test-graphique.xlsx (29.55 Ko)

Salut, je ne vais pas être d'une grande aide car j'ai un peu le même soucis que toi pour le moment...

Si ça peut t'aider, je te joint un code trouvé sur un autre site (mais je n'arrive pas trop à m'en servir pour le moment) :

Les graphiques d'Excel sont particulièrement bien conçus et commodes d'emploi. Ils présentent toutefois un inconvénient, leur taille.

Au delà d'une dizaine de graphiques dans un même classeur, on peut rencontrer des problèmes de mé:moire (difficultés d'affichage ou lenteur de calcul).

Pour tourner cette difficulté, on peut choisir de ne laisser aucun graphique dans les pages Excel mais de les stocker sous forme de macros VBA (peu gourmandes en mémoire et ne nécessitant pas de recalcul).

La création de graphiques par VBA ne présente pas de problème particulier. Il suffit de créer un nouveau graphique, de lui affecter des données (qui peuvent avantageusement être entrées "en dur" afin d'éviter de créer de nouvelles liaisons éventuellement longues à mettre à jour), et de définir les formats des séries.

Le graphique pourra être placé dans un nouveau fichier (temporaire) créé pour l'occasion, et qui ne sera même pas enregistré.

Un exemple, la plage "B2:G6" de l'onglet "CR" contient les éléments chiffrés du compte de résultats d'une société.

La macro qui suit va recopier cette plage (seulement les valeurs) dans un nouveau classeur (nouv) créé pour l'occasion (non enregistré), ajouter un nouveau graphique (gr) dans ce classeur (Set gr = nouv.Charts.Add), puis définir la zone où les données ont été recopiées comme source de données (gr.SetSourceData Source:=Sheets("Feuil1").Range("A1:F5"), PlotBy:=xlRows).

Il ne reste plus qu'à définir les formats des séries de données (courbes, histogrammes, couleurs, choix de l'axe...), des axes (échelles, formats des étiquettes...), des titres...

Si la macro est affectée à un bouton, l'utilisateur n'aura qu'à cliquer pour afficher le graphique.

Sub gr_compte_de_résultats()

Application.ScreenUpdating = False
ThisWorkbook.Sheets("CR").Range("B2:G6").Copy

'créer un nouveau classeur et y coller les données
Set nouv = Workbooks.Add
Set pg = nouv.Sheets(1)
pg.Paste
pg.Cells(1).PasteSpecial Paste:=xlValues

'tracer le graphique
Set gr = nouv.Charts.Add
With gr
.SetSourceData Source:=Sheets("Feuil1").Range("A1:F5"), PlotBy:=xlRows
.ChartType = xlLine
.Location Where:=xlLocationAsNewSheet
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "années"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "k EUR"
.PlotArea.Interior.ColorIndex = 2
.Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot
.ChartArea.Font.Size = 14
.Deselect
End With
Application.ScreenUpdating = True

'faire le ménage
Set pg = Nothing
Set gr = Nothing
Set nouv = Nothing
End Sub 

Je me laisse encore quelques heures avant de poser mon problème sur un autre post lol.

Bonne journée.

Bonjour,

pourquoi t'embêter à faire 24 graphiques, un graphique dynamique avec une liste déroulante pourrait il te convenir.

Voir exemple dans le fichier joint.

Cordialement.

523test-graphique.xlsx (24.48 Ko)
Rechercher des sujets similaires à "creer graphique chaque ligne tableau macro"