Bonjour à tous !
Je rédige une macro me permettant de créer un graphique, jusque là tout va bien. Le graphique se créé sur une nouvelle feuille excel sans problème.
Ce qui m'embête c'est qu'à chaque fois que j'exécute la macro, une nouvelle feuille avec un nouveau graphique apparait. Cela me gêne car je me retrouve vite avec plein de graphiques, alors que je souhaite uniquement conserver le plus récent !
J'ai essayé de nommer cette nouvelle feuille (sans succès), de donner l'ordre de supprimer la feuille au début de ma macro, mais si elle n'existe pas déjà ça ne fonctionne pas...
Voici mon code :
Peut être qu'il faudrait donner un nom à la feuille créée (au moins comme ça pas de problème de graph1 graph2 graph3...) et mettre une instruction au début du code disant que si cette feuille existe déjà, alors il faut la supprimer... Qu'en pensez vous ?
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 'Sheets("Graph1").Select 'ActiveWindow.SelectedSheets.Delete --> ne fonctionne pas si mon graph 1 n'est pas déjà créé. De plus lors de la seconde excéution, le graph créé est désormais nommé graph2. Ainsi, lors de la troisième exécution, le système ne fonctionne plus :( With WsD Set Plage = .Range(.Cells(77, 2), .Cells(.Cells(77, 2).End(xlDown).Row, .Columns.Count).End(xlToLeft)) End With Set objChart = ThisWorkbook.Charts.Add objChart.ChartType = xlColumnStacked objChart.SetSourceData Plage, xlRows ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(1).XValues = "=Recap!$C$64:$CP$64" ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) Selection.Caption = "Mois" ActiveChart.SetElement (msoElementPrimaryValueAxisTitleRotated) Selection.Caption = "ETPs" ActiveChart.SetElement (msoElementChartTitleAboveChart) Selection.Caption = "Plan de charge Technique groupé par famille"
J'ai un autre petit problème avec mon code : comme vous pouvez le voir, j'ai sélectionné l'échelle de l'axe des abscisses : de C64 à CP64. Néanmoins, ma colonne CP est susceptible de varier ! J'ai essayé une autre formule du type : mais sans succès :/
Voici ma formule qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveChart.SeriesCollection(1).XValues = Range(.Cells(64, 3).End(xlDown))
Merci à tous ceux qui pourraient me donner un petit coup de main ! Merci et bonne journée !
Partager