Vba : nom du graphique

Le
Jac
Bonjour à tous,

je crée un graphique, par vba : sélection des données puis

Charts.Add: ActiveChart.ChartType = xlPie
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil4"

donc création d'un graphique dans une nouvelle feuille puis retour du
graphique sur la feuille de données origine.

Mais quand je cherche à voir quel est le nom du graphique avec
QUEL_CHART = ActiveChart.Name
j'obtiens en retour "Feuil4 Graphique 5", ce qu'Excel ne reconnait pas
quand je cherche à faire une modif sur la graphe. Excel ne bronche pas
quand je lui demande
ActiveSheet.Shapes("Graphique 5").Height = 200

Pourquoi il me dit que le graphe s'appelle "Feuil4 Graphique 5" ?
Pourquoi il ne fonctionne qu'avec "Graphique 5" ?
Comment je peux lui demander le nom utile du graphe ?

Question subsidiaire : avec ActiveSheet.Shapes("Graphique 5").Select,
je sélectionne le graphe. Pour le déselectionner, n'y aurait-il pas un
"unselect" ? Car pour le moment, je passe toujous par la sélection
d'une cellule sur la feuille.

Merci d'avance à qui pourrait me donner quelques réponses à ces
questions.

Jac
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19902351
Bonjour Jac,

Un petit exemple si cela peut t'aider ... je dois quitter !


'----------------------------------
Sub test()
Dim X As ChartObject
Set X = Feuil1.ChartObjects("Chart 1")
a = X.Chart.Name
With X
.Top = 200
.Left = 300
.Width = 300
.Height = 400
End With

End Sub

'----------------------------------
Sub test1()
'Si ton graphe est dans une feuille graphique
Dim X As Chart
Set X = Charts(1)
'Nom de la feuille où est le graphe
S = X.Name
End Sub
'----------------------------------

"Jac"
Bonjour à tous,

je crée un graphique, par vba : sélection des données puis

Charts.Add: ActiveChart.ChartType = xlPie
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil4"

donc création d'un graphique dans une nouvelle feuille puis retour du
graphique sur la feuille de données origine.

Mais quand je cherche à voir quel est le nom du graphique avec
QUEL_CHART = ActiveChart.Name
j'obtiens en retour "Feuil4 Graphique 5", ce qu'Excel ne reconnait pas
quand je cherche à faire une modif sur la graphe. Excel ne bronche pas
quand je lui demande
ActiveSheet.Shapes("Graphique 5").Height = 200

Pourquoi il me dit que le graphe s'appelle "Feuil4 Graphique 5" ?
Pourquoi il ne fonctionne qu'avec "Graphique 5" ?
Comment je peux lui demander le nom utile du graphe ?

Question subsidiaire : avec ActiveSheet.Shapes("Graphique 5").Select,
je sélectionne le graphe. Pour le déselectionner, n'y aurait-il pas un
"unselect" ? Car pour le moment, je passe toujous par la sélection
d'une cellule sur la feuille.

Merci d'avance à qui pourrait me donner quelques réponses à ces
questions.

Jac
todtod Hors ligne
Le #26522620
Le samedi 08 Août 2009 à 16:40 par Jac :
Bonjour à tous,

je crée un graphique, par vba : sélection des données
puis

Charts.Add: ActiveChart.ChartType = xlPie
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil4"

donc création d'un graphique dans une nouvelle feuille puis retour du
graphique sur la feuille de données origine.

Mais quand je cherche à voir quel est le nom du graphique avec
QUEL_CHART = ActiveChart.Name
j'obtiens en retour "Feuil4 Graphique 5", ce qu'Excel ne reconnait
pas
quand je cherche à faire une modif sur la graphe. Excel ne bronche pas
quand je lui demande
ActiveSheet.Shapes("Graphique 5").Height = 200

Pourquoi il me dit que le graphe s'appelle "Feuil4 Graphique 5" ?
Pourquoi il ne fonctionne qu'avec "Graphique 5" ?
Comment je peux lui demander le nom utile du graphe ?

Question subsidiaire : avec ActiveSheet.Shapes("Graphique 5").Select,

je sélectionne le graphe. Pour le déselectionner, n'y aurait-il
pas un
"unselect" ? Car pour le moment, je passe toujous par la
sélection
d'une cellule sur la feuille.

Merci d'avance à qui pourrait me donner quelques réponses
à ces
questions.

Jac


Bonjour,
J'ai eu le même problème pour pouvoir redimensionner un graph que je créais sous VBA, je ne pouvais pas passer par autre chose.
J'ai finalement trouvé en trichant un peu mais ca fonctionne.

'Obtenir le nom du graph afin de pouvoir le dimensioner

Dim NameC As String
NameC = ActiveChart.Name
MsgBox (NameC)

Dim NameC2 As String
NameC2 = Right(NameC, 7)
NameC3 = Right(NameC, 8)
NameC21 = Left(NameC2, 5)

'Si le graph a un nom à deux chiffres (Chart 23) ou seulement 1 (Chart 2)

If NameC21 = "Chart" Then
FinalName = NameC2
Else
FinalName = NameC3
End If

MsgBox (FinalName)
ActiveSheet.Shapes(FinalName).Width = 216
Publicité
Poster une réponse
Anonyme