Bonjour à tous,
Je débute toujours sous VBA et je suis confronté à un nouveau problème.
Voilà, j'ai une feuille avec des data mises à jours automatiquement et j'aimerai afficher un graphe qui prenne en compte toutes les data. La solution la plus simple que j'ai réussi à coder est la supression du tableau précédemment existant et la création d'un nouveau prenant en compte les anciennes data plus celles ajoutées dernièrement, ce qui donne quelque chose comme ça:
Or comme vous le voyez, la ligne en rouge ne prend pas en compte les modifications et à juste titre car je ne sais pas comment définir le range pour qu'il prenne une cellule sur deux d'une ligne connue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub reporting4() Dim DerColonne As Integer Dim c As ChartObject Sheets("Reporting").ChartObjects("Graphique 1").Delete Set c = Sheets("Reporting").ChartObjects.Add(180, 215, 520, 200) DerColonne = Range("IV2").End(xlToLeft).Column c.Name = "Graphique 1" With c.Chart .SetSourceData Source:=Range(Cells(15, 3), Cells(15, DerColonne)) .SeriesCollection(1).XValues = Range(Cells(2, 3), Cells(2, DerColonne)) .Legend.Delete .Axes(xlValue).MaximumScale = 35 .SeriesCollection.NewSeries .SeriesCollection(2).Values = _ "=Reporting!$C$47,Reporting!$E$47,Reporting!$G$47" .SeriesCollection(2).ChartType = xlLineMarkersStacked .SeriesCollection(1).ApplyDataLabels .SeriesCollection(2).ApplyDataLabels End With End Sub
Je sais que je commence à la cellule C47 puis E47 puis G47 ... jusqu'à Range("IV47").End(xlToLeft).Column
Est ce que vous avez une solution pour que je puisse définir ce range? J'ai lu sur d'autre forums que certains utilisaient la fonction DECALER mais je n'ai pas compris comment l'appliquer sur ce problème.
Merci par avance,
YanBos
Partager