OVH Cloud OVH Cloud

Nommer un chart

5 réponses
Avatar
JeNeVois
Bonsoir !

Pourquoi la macro suivante échoue-t-elle ?

sub newchartname()
Charts.Add
chartnameinitial = ActiveChart.Name
chartname="MorningStar"
ActiveSheet.ChartObjects(chartnameinitial).Name = chartname
end sub

Salutations

5 réponses

Avatar
LSteph
Bonsoir,
chartnameinitial = ActiveChart.Name
..chartnameinitial).Name


¬tivechart.name.name?

a+
lsteph

"JeNeVois" a écrit dans le message de
news:

Bonsoir !

Pourquoi la macro suivante échoue-t-elle ?

sub newchartname()
Charts.Add
chartnameinitial = ActiveChart.Name
chartname="MorningStar"
ActiveSheet.ChartObjects(chartnameinitial).Name = chartname
end sub

Salutations


Avatar
Pierre Fauconnier
Bonjour

Il faut utiliser
activesheet.chartobject(...).name = "Un Chart"

car il faut nommer un chart un chart...

;-)

Juste pour rire, hum...


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"JeNeVois" a écrit dans le message de
news:

Bonsoir !

Pourquoi la macro suivante échoue-t-elle ?

sub newchartname()
Charts.Add
chartnameinitial = ActiveChart.Name
chartname="MorningStar"
ActiveSheet.ChartObjects(chartnameinitial).Name = chartname
end sub

Salutations


Avatar
Pierre Fauconnier
Bonjour

Plus sérieusement, cela dépend de ce que tu souhaites obtenir.
Tu peux vouloir renommer l'onglet ( Excel ) ou l'objet VBA.

Voici un code qui permet les deux. Je te conseille de travailler avec un
objet Chart, c'est plus facile à manipuler.

Sub AddChart()
Dim MonChart As Chart

Set MonChart = Charts.Add()
MonChart.Name = "Pierre" ' Nom Excel de l'objet
ThisWorkbook.VBProject.VBComponents(MonChart.CodeName).Name =
"ch_Pierre" ' Nom VBA de l'objet
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"JeNeVois" a écrit dans le message de
news:

Bonsoir !

Pourquoi la macro suivante échoue-t-elle ?

sub newchartname()
Charts.Add
chartnameinitial = ActiveChart.Name
chartname="MorningStar"
ActiveSheet.ChartObjects(chartnameinitial).Name = chartname
end sub

Salutations


Avatar
AV
Pourquoi pas ?

Charts.Add.Name = "MorningStar"

AV
Avatar
JeNeVois
Merci à tous !

Il s'agit en fait d'une macro qui produirait une série
de charts, chacun couvrant une tranche identique
de données, p.exp. le premier le range C1:C100,
le deuxième le range C101:C200 etc.
Chacun des charts devrait être déplacé sur une
plage vide de la feuille et aligné verticalement
au précédent.
Ainsi la déclaration de chaque chart comme objet
paraît un peu démesuré pour cette application...
Après mon posting j'ai trouvé dans "Renommer graphe par vba"
(qui avait échappé à ma recherche préalable "Nommer un chart") :
Charts.Add
ActiveChart.Name = chartname
dont la forme raccourcie
Charts.Add.Name = "MorningStar"
est ,bien.sûr, encore plus concise.

Malheureusement le problème se trouve
seulement déplacé, car Excel insiste , en l'occurence,
sur le nom initial qui (pour compliquer encore un peu
ce qui paraît simple) est soit du type "Graphique 3",
soit "Graph3". Ainsi le déplacement avec
ActiveSheet.Shapes("MorningStar").IncrementLeft 554.25
ActiveSheet.Shapes("MorningStar").IncrementTop 10.5
échoue comme toute autre action sur le chart renommé.
A quoi bon un nom qui n'appelle pas le nommé ? :)

salutations




Pourquoi pas ?

Charts.Add.Name = "MorningStar"

AV