Bonjour,
Mon premier post (désolé si il manqué d'information ou si il n'est pas très correct nananinanana j'essaye de faire au mieux , je realise de temps en temps des macros depuis longtemps, mais je ne suis pas toujours au point).
Par macro, je crée un onglet, copie un tableau, copie un graph (d'une autre feuille) et je met à jour le graph en changeant la source de données comme cela :
Aucun problem beau graphique avec tous ce que je veux.
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
25 Worksheets(NOo).Activate Set r1 = Range("E4:F" & DLP) Set r2 = Range("G4:G" & DLP) Set myMultiAreaRange = Union(r1, r2) 'dans la macro je me sert d'un graphique dans un onglet caché pour pouvoir modifier le style de graphique plus facilement si nécessaire Dim NS As String ' nom standard pour l'onglet qui sert à avoir le design des graphiques NSS = "design_graphique_2" Sheets(NSS).Visible = True Sheets(NSS).Select ActiveSheet.ChartObjects("Graphique 1").Activate ActiveSheet.ChartObjects("Graphique 1").Activate ActiveChart.ChartArea.Copy Sheets(NOo).Select Range("J3").Select ActiveSheet.Paste ActiveSheet.ChartObjects("Graphique 1").Activate ActiveChart.SetSourceData Source:=myMultiAreaRange ActiveChart.SetElement (msoElementChartTitleAboveChart) With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = NOo End With Sheets(NSS).Visible = False
Seuleument voila
J'ai un onglet synthèse de graphique, ou je rassemble tous mes graphiques, je met donc le graphique coincident au meme graphique que ci-dessus à jour en changeant les données, exactement de la meme façon que ci-dessus
Le graph se met bien à jour , la source de donnée est bonne et le titre également.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 'tableau synthese graphique MAJ If J < 8 Then Sheets("design_graphique_3").Visible = True Sheets("design_graphique_3").Select ActiveSheet.ChartObjects("Graphique " & J + 1).Activate ActiveChart.SetSourceData Source:=myMultiAreaRange, PlotBy:=xlColumns ActiveChart.SetElement (msoElementChartTitleAboveChart) With ActiveChart .HasTitle = True .ChartTitle.Characters.Text = NOo End With Sheets("design_graphique_3").Visible = False End If
Par contre j'obtiens en nom de série --> serie 1 serie 2, ou en absicce --> 1 2 3 4 au lieu de ce qui est à l'interieur des cellules (en pj la photo du graphique).
Yo comprend pas,
MErci du coup de main si vous savez, je dois passer à coté de quelquechose et j'ai perdu trop de temps laaaaaa.
El blackyThothor
Partager