Je voudrai cr=E9er plusieurs graphes incorpor=E9s dans une=20
feuille Excel. Comment faire r=E9f=E9rence =E0 un de ces graphe=20
pour pouvoir les distinguer et les manipuler en VB?
J'ai essay=E9:
Nom_Graphe=3DActivechart.Name
mais quand je fais:
ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _=20
msoFalse,msoScaleFromTopLeft
'------------------------------------- Dim C As Shape
With Worksheets("Feuil1") Set C = .Shapes("Chart 1") End With
With C .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With '-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1") .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" . Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un nom par défaut et ensuite il incrémente l'index à chaque ajout que tu fais du même objet. La subtilité ici , c'est bien que nous soyons sûr que c'est le même objet, comme tu utilises des propretés d'objets différents, le nom renvoyé n'est pas le même selon que tu utilises l'une ou l'autre de ces 2 méthodes et je te propose un petit exercice.
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique sur une feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
C'est pourquoi que tu ne peux utiliser "Nom_Graphe" dans ta ligne de code : ActiveSheet.Shapes(Nom_Graphe).....
Salutations!
"Mirana" a écrit dans le message de news:067001c388c4$701e5730$ Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft
Ca ne marche pas!
Merci de me file un coup de main.
a+
Mirana
Bonjour Mirana,
'-------------------------------------
Dim C As Shape
With Worksheets("Feuil1")
Set C = .Shapes("Chart 1")
End With
With C
.ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft
End With
'-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1")
.ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft
End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" .
Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a
dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche
toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un
nom par défaut et ensuite il incrémente l'index à chaque ajout que tu fais du même objet. La subtilité ici , c'est bien
que nous soyons sûr que c'est le même objet, comme tu utilises des propretés d'objets différents, le nom renvoyé n'est
pas le même selon que tu utilises l'une ou l'autre de ces 2 méthodes et je te propose un petit exercice.
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique sur une feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart
Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
C'est pourquoi que tu ne peux utiliser "Nom_Graphe" dans ta ligne de code :
ActiveSheet.Shapes(Nom_Graphe).....
Salutations!
"Mirana" <mbakolal@etu.utc.fr> a écrit dans le message de news:067001c388c4$701e5730$a001280a@phx.gbl...
Salut!
Je voudrai créer plusieurs graphes incorporés dans une
feuille Excel. Comment faire référence à un de ces graphe
pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé:
Nom_Graphe¬tivechart.Name
mais quand je fais:
ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _
msoFalse,msoScaleFromTopLeft
'------------------------------------- Dim C As Shape
With Worksheets("Feuil1") Set C = .Shapes("Chart 1") End With
With C .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With '-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1") .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" . Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un nom par défaut et ensuite il incrémente l'index à chaque ajout que tu fais du même objet. La subtilité ici , c'est bien que nous soyons sûr que c'est le même objet, comme tu utilises des propretés d'objets différents, le nom renvoyé n'est pas le même selon que tu utilises l'une ou l'autre de ces 2 méthodes et je te propose un petit exercice.
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique sur une feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
C'est pourquoi que tu ne peux utiliser "Nom_Graphe" dans ta ligne de code : ActiveSheet.Shapes(Nom_Graphe).....
Salutations!
"Mirana" a écrit dans le message de news:067001c388c4$701e5730$ Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft
Ca ne marche pas!
Merci de me file un coup de main.
a+
Mirana
Denis Michon
Bonjour Mirana,
'------------------------------------- Dim C As Shape
With Worksheets("Feuil1") Set C = .Shapes("Chart 1") End With
With C .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With '-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1") .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" . Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un nom par défaut. Ensuite il incrémente l'index à chaque ajout du même objet. La subtilité ici , c'est bien que tu sois sûr que c'est le même objet qui est référencié, Excel utilise à l'interne pour chaque type d'objet un qualificatif différent. Comme tes 2 lignes de code réfère a des objets différents "Chart" et "Shape", le nom par défaut à chaque type d'objet renvoyé n'est pas le même. C'est pourquoi que tu ne peux pas utiliser "Nom_Graphe" qui fait référence à l'objet "Chart" dans ta ligne de code suivante qui elle fait référence à l'objet "Shape". ActiveSheet.Shapes(Nom_Graphe).....
Tu veux faire un petit test :
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique de la feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
Salutations!
"Mirana" a écrit dans le message de news:067001c388c4$701e5730$ Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft
Ca ne marche pas!
Merci de me file un coup de main.
a+
Mirana
Bonjour Mirana,
'-------------------------------------
Dim C As Shape
With Worksheets("Feuil1")
Set C = .Shapes("Chart 1")
End With
With C
.ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft
End With
'-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1")
.ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft
End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" .
Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a
dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche
toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un
nom par défaut. Ensuite il incrémente l'index à chaque ajout du même objet. La subtilité ici , c'est bien que tu sois
sûr que c'est le même objet qui est référencié, Excel utilise à l'interne pour chaque type d'objet un qualificatif
différent. Comme tes 2 lignes de code réfère a des objets différents "Chart" et "Shape", le nom par défaut à chaque type
d'objet renvoyé n'est pas le même. C'est pourquoi que tu ne peux pas utiliser "Nom_Graphe" qui fait référence à l'objet
"Chart" dans ta ligne de code suivante qui elle fait référence à l'objet "Shape". ActiveSheet.Shapes(Nom_Graphe).....
Tu veux faire un petit test :
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique de la feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart
Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
Salutations!
"Mirana" <mbakolal@etu.utc.fr> a écrit dans le message de news:067001c388c4$701e5730$a001280a@phx.gbl...
Salut!
Je voudrai créer plusieurs graphes incorporés dans une
feuille Excel. Comment faire référence à un de ces graphe
pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé:
Nom_Graphe¬tivechart.Name
mais quand je fais:
ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _
msoFalse,msoScaleFromTopLeft
'------------------------------------- Dim C As Shape
With Worksheets("Feuil1") Set C = .Shapes("Chart 1") End With
With C .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With '-------------------------------------
Une syntaxe alternative si tu préfères ceci :
With Worksheets("Feuil1").Shapes("Chart 1") .ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End With
.-------------------------------------
Si je peux me permettre une petite explication sur ton code :
Nom_Graphe¬tivechart.Name
ActiveSheet.Shapes(Nom_Graphe).....
Observe ces 2 lignes et tu vas t'apercevoir que tu fais référence à 2 types d'objets différents "Chart" et "Shape" . Chaque type d'objet possède leurs propriétés et leurs méthodes. Dans l'aide, sous la rubrique Chart ou Shape, il y a dans le haut de la fenêtre en bleu les mots "propriétés" et "méthodes". Si tu cliques dessus, une fenêtre t'affiche toutes les méthodes ou propriétés de l'objet.
Dans le cas qui nous intéresse, à chaque fois que tu insères un objet dans la feuille, excel se charge de lui donner un nom par défaut. Ensuite il incrémente l'index à chaque ajout du même objet. La subtilité ici , c'est bien que tu sois sûr que c'est le même objet qui est référencié, Excel utilise à l'interne pour chaque type d'objet un qualificatif différent. Comme tes 2 lignes de code réfère a des objets différents "Chart" et "Shape", le nom par défaut à chaque type d'objet renvoyé n'est pas le même. C'est pourquoi que tu ne peux pas utiliser "Nom_Graphe" qui fait référence à l'objet "Chart" dans ta ligne de code suivante qui elle fait référence à l'objet "Shape". ActiveSheet.Shapes(Nom_Graphe).....
Tu veux faire un petit test :
Supposons que tu ais seulement un objet dans ta feuille et que ce soit un graphique :
A ) sélectionne le graphique de la feuille :
B ) Exécute ces lignes de code :
Nom_Graphe¬tivechart.Name 'Propriété de l'objet Chart Nom_Shape = ActiveSheet.Shapes(1).Name 'Propriété de l'objet Shape
Résultat : NomGraphe <> NomShape
Salutations!
"Mirana" a écrit dans le message de news:067001c388c4$701e5730$ Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft
Ca ne marche pas!
Merci de me file un coup de main.
a+
Mirana
Alain CROS
Bonjour.
Si tu veux utiliser ActiveChart.Name, essaye comme ça.
Sub test() Dim LeNom$ LeNom = ActiveChart.Name LeNom = Right$(LeNom, Len(LeNom) - Len(ActiveSheet.Name) - 1) ActiveSheet.Shapes(LeNom).ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End Sub
Attention au coupure de ligne. Ceci fonctionne sur XL97.
Alain CROS.
-----Message d'origine----- Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft
Ca ne marche pas!
Merci de me file un coup de main.
a+
Mirana .
Bonjour.
Si tu veux utiliser ActiveChart.Name, essaye comme ça.
Sub test()
Dim LeNom$
LeNom = ActiveChart.Name
LeNom = Right$(LeNom, Len(LeNom) - Len(ActiveSheet.Name) -
1)
ActiveSheet.Shapes(LeNom).ScaleWidth 1.01, msoFalse,
msoScaleFromTopLeft
End Sub
Attention au coupure de ligne.
Ceci fonctionne sur XL97.
Alain CROS.
-----Message d'origine-----
Salut!
Je voudrai créer plusieurs graphes incorporés dans une
feuille Excel. Comment faire référence à un de ces graphe
pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé:
Nom_Graphe=Activechart.Name
mais quand je fais:
ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _
msoFalse,msoScaleFromTopLeft
Si tu veux utiliser ActiveChart.Name, essaye comme ça.
Sub test() Dim LeNom$ LeNom = ActiveChart.Name LeNom = Right$(LeNom, Len(LeNom) - Len(ActiveSheet.Name) - 1) ActiveSheet.Shapes(LeNom).ScaleWidth 1.01, msoFalse, msoScaleFromTopLeft End Sub
Attention au coupure de ligne. Ceci fonctionne sur XL97.
Alain CROS.
-----Message d'origine----- Salut!
Je voudrai créer plusieurs graphes incorporés dans une feuille Excel. Comment faire référence à un de ces graphe pour pouvoir les distinguer et les manipuler en VB?
J'ai essayé: Nom_Graphe¬tivechart.Name mais quand je fais: ActiveSheet.Shapes(Nom_Graphe).ScaleWidth 1.01, _ msoFalse,msoScaleFromTopLeft