Problème avec effacement un graphique précis à l'aide d'une macro

claire3131

XLDnaute Nouveau
Voila mon problème:

Sur ma feuille qui s'appelle ("calculs") il y a plusieurs graphique (Trois). Chacun est crée par une macro différente qui s'enclenche grâce à un bouton lui correspondant.
En fait, mon problème vient du fait que j'ai recherché sur internet un moyen d'effacer un graphique et j'ai trouvé cà :
Worksheets("Calculs").ChartObjects.Delete
Or cette ligne m'efface tous les graphiques de ma page alors que j'aimerais simplement effacer le graphique ancien pour le remplacer par le nouveau à l'activation du bouton qui lui correspond.

J'ai essayé:
Worksheets("Calculs").ChartObject("Graphique").Delete
Mais il me met l'erreur "Propriété ou méthode non non gérée par cette objet"


Je ne sais plus quoi faire
Merci pour vôtre aide
Je vous mets une des 3 macros







Dim nouveau_graphique As Chart
Worksheets("Calculs").ChartObjects.Delete
Range("C5:E18").Select
Set nouveau_graphique = Charts.Add
nouveau_graphique.Name = "Graphique"
nouveau_graphique.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Calculs").Range("C5:E18"), PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Calculs"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Productions mensuelles de pluies en litres"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Mois"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Productions (L)"
End With

ActiveChart.SeriesCollection(2).Select
With Selection.Border
.ColorIndex = 57
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 3
.Shadow = False
End With
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.ColorIndex = 57
.Weight = xlMedium
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 3
.Shadow = False
End With


ActiveChart.PlotArea.Select
With Selection.Border
.ColorIndex = 16
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection.Interior
.ColorIndex = 2
.PatternColorIndex = 1
.Pattern = xlSolid
End With

ActiveSheet.ChartObjects(1).Left = 400 'horizontal
ActiveSheet.ChartObjects(1).Top = 70 'vertical




ActiveWindow.Visible = False
Windows("Meteo.xls").Activate
Range("H20").Select
 

job75

XLDnaute Barbatruc
Re : Problème avec effacement un graphique précis à l'aide d'une macro

Bonjour Claire, bienvenue sur XLD,

Lors de la création du graphique, quand il est sélectionné, il faut le nommer par l'instruction :

Code:
ActiveChart.Parent.Name = "toto"

Puis dans le code du bouton qui le supprime :

Code:
Sheets("Calculs").Shapes("toto").Delete

A+
 

Hulk

XLDnaute Barbatruc
Re : Problème avec effacement un graphique précis à l'aide d'une macro

Hello Forum, Claire, Job :)

Voici un classeur exemple, avec trois graphiques.

Essaie d'adapter au tien si t'es encore dans le coin :D

Cdt, Hulk.
 

Pièces jointes

  • Test Graphiques.zip
    19.5 KB · Affichages: 77

mécano41

XLDnaute Accro
Re : Problème avec effacement un graphique précis à l'aide d'une macro

Bonjour à tous,

Quelqu'un peut-il me dire pourquoi, dans le fichier joint, la ligne de code :

Code:
ActiveChart.Parent.Name = "Graphique1"

permettant de nommer le graphique ne fonctionne plus si on met à la place :

Code:
.Parent.Name = "Graphique1"

dans la boucle With ActiveChart....End With qui la précède?

Cordialement
 

Pièces jointes

  • Créer nommer effacer graphiques1.zip
    21.3 KB · Affichages: 33
  • Créer nommer effacer graphiques1.zip
    21.3 KB · Affichages: 28
  • Créer nommer effacer graphiques1.zip
    21.3 KB · Affichages: 28

job75

XLDnaute Barbatruc
Re : Problème avec effacement un graphique précis à l'aide d'une macro

Bonjour le fil, le forum,

Je repasse par là et réponds à mécano41.

Au moment de la définition du With, la Shape n'est pas encore créée et on ne peut donc pas modifier son nom (et ceci jusqu'au End With).

Pour voir ce que donne la propriété Parent, ajouter des MsgBox dans le code, c'est instructif :

Code:
MsgBox ActiveChart.Parent.Name 'la Shape n'est pas encore créée
    .Location Where:=xlLocationAsObject, Name:=F1.Name
MsgBox ActiveChart.Parent.Name 'la Shape a été créée

A+
 

Discussions similaires

Réponses
0
Affichages
154
Réponses
5
Affichages
1 K

Statistiques des forums

Discussions
312 274
Messages
2 086 703
Membres
103 377
dernier inscrit
fredy45