Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vba : nom du graphique

2 réponses
Avatar
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

2 réponses

Avatar
MichDenis
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" a écrit dans le message de groupe de discussion :

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
Avatar
todtod
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