Supprimer un classeur Excel avec VBA
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 :
Code:
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" |
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 ?
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:
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 ! :)