Afficher étiquettes et valeurs sur un graphe en secteurs

Le
Jean-Baptiste
Bonjour,

Je cherche à faire afficher sur les étiquettes d'un diagramme en
secteurs à la fois les étiquettes et les valeurs. Exactement comme le
fait l'option Excel "Etiquette et Pourcentage" mais avec les valeurs à
la place des pourcentages.
Je pensais avoir trouvé une solution en ajoutant des zones de texte
reprenant les valeurs par une formule mais lorsque je change mes données
le positionnement des étiquettes ne correspond plus avec celui des
secteurs mis à jour.
Je suppose qu'il doit exister une solution par VBA mais je n'en suis
qu'au stade du tatonnement sur VBA et je ne l'ai jamais utilisé pour
paramétrer des graphiques.

Merci beaucoup de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4563811
Bonjour,

Pour un graphe 'secteurs', il y a dans 'Graphique/Options du
graphique' 'catégorie, valeur et %'.

Pour des étiquettes qui n'appartiennent pas aux données du graphe:

http://boisgontierjacques.free.fr/fichiers/graphe/GrapheCommentaire.xls

JB


On 2 juin, 22:52, Jean-Baptiste
Bonjour,

Je cherche à faire afficher sur les étiquettes d'un diagramme en
secteurs à la fois les étiquettes et les valeurs. Exactement comme le
fait l'option Excel "Etiquette et Pourcentage" mais avec les valeurs à
la place des pourcentages.
Je pensais avoir trouvé une solution en ajoutant des zones de texte
reprenant les valeurs par une formule mais lorsque je change mes données
le positionnement des étiquettes ne correspond plus avec celui des
secteurs mis à jour.
Je suppose qu'il doit exister une solution par VBA mais je n'en suis
qu'au stade du tatonnement sur VBA et je ne l'ai jamais utilisé pour
paramétrer des graphiques.

Merci beaucoup de votre aide.


Francois L
Le #4563801
Bonjour,

Je cherche à faire afficher sur les étiquettes d'un diagramme en
secteurs à la fois les étiquettes et les valeurs. Exactement comme le
fait l'option Excel "Etiquette et Pourcentage" mais avec les valeurs à
la place des pourcentages.
Je pensais avoir trouvé une solution en ajoutant des zones de texte
reprenant les valeurs par une formule mais lorsque je change mes données
le positionnement des étiquettes ne correspond plus avec celui des
secteurs mis à jour.
Je suppose qu'il doit exister une solution par VBA mais je n'en suis
qu'au stade du tatonnement sur VBA et je ne l'ai jamais utilisé pour
paramétrer des graphiques.


Bonjour,

Un exemple simple qui suppose que les noms soient dans la colonne A, à
partir de A1 et les valeurs dans la colonne B, à partir de B1 et que le
graphique soit sur la même feuille que les données sources. Sinon, il
faut adapter la ligne :
.DataLabel.Text = Range("A" & i).Value & " : " & Range("B" & i).Value

Sélectionner le graphique et exécuter la macro.

Attention, si les données sources changent, il faut re-exécuter la macro
pour que les étiquettes se mettent à jour.
'-------------------------------------------------------------
Sub etiqu()
Dim i As Integer
With ActiveChart 'Le graphique doit être sélectionné
For i = 1 To .SeriesCollection(1).Points.Count
With .SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = Range("A" & i).Value & " : " & Range("B" & i).Value
End With
Next
End With
End Sub
'---------------------------------------------------------------

--
François L

Francois L
Le #4563781
Bonjour,

Pour un graphe 'secteurs', il y a dans 'Graphique/Options du
graphique' 'catégorie, valeur et %'.



Bonjour JB (et les autres levés tôt),

Pas de ça dans mon XL2000 !

--
François L

Jean-Baptiste
Le #4563621
Bonjour,

Pour un graphe 'secteurs', il y a dans 'Graphique/Options du
graphique' 'catégorie, valeur et %'.



Bonjour JB (et les autres levés tôt),

Pas de ça dans mon XL2000 !



Bonjour JB et François L (et tous les autres bien sûr),

JB, je n'ai effectivement pas cette option dans mon XL 2004 (Mac). Tu as
quelle version ?

Je teste la solution de François dès maintenant,

Merci beaucoup pour votre aide et la rapidité de votre réponse.


Jean-Baptiste


JB
Le #4563581
Bonjour,

Excel 2002 Windows XP

JB
On 3 juin, 10:42, Jean-Baptiste

Bonjour,

Pour un graphe 'secteurs', il y a dans 'Graphique/Options du
graphique' 'catégorie, valeur et %'.


Bonjour JB (et les autres levés tôt),

Pas de ça dans mon XL2000 !


Bonjour JB et François L (et tous les autres bien sûr),

JB, je n'ai effectivement pas cette option dans mon XL 2004 (Mac). Tu as
quelle version ?

Je teste la solution de François dès maintenant,

Merci beaucoup pour votre aide et la rapidité de votre réponse.

Jean-Baptiste




Jean-Baptiste
Le #4563421
Bonjour,

Pour un graphe 'secteurs', il y a dans 'Graphique/Options du
graphique' 'catégorie, valeur et %'.

Pour des étiquettes qui n'appartiennent pas aux données du graphe:

http://boisgontierjacques.free.fr/fichiers/graphe/GrapheCommentaire.xls

JB


On 2 juin, 22:52, Jean-Baptiste
Bonjour,

Je cherche à faire afficher sur les étiquettes d'un diagramme en
secteurs à la fois les étiquettes et les valeurs. Exactement comme le
fait l'option Excel "Etiquette et Pourcentage" mais avec les valeurs à
la place des pourcentages.
Je pensais avoir trouvé une solution en ajoutant des zones de texte
reprenant les valeurs par une formule mais lorsque je change mes données
le positionnement des étiquettes ne correspond plus avec celui des
secteurs mis à jour.
Je suppose qu'il doit exister une solution par VBA mais je n'en suis
qu'au stade du tatonnement sur VBA et je ne l'ai jamais utilisé pour
paramétrer des graphiques.

Merci beaucoup de votre aide.



Re-bonjour,


La solution de François L a très bien fonctionné. Merci encore de votre
aide.
J'ai maintenant une autre question : comment puis-je attribuer à une
constante le numéro de la ligne de la première valeur source du graphique.
Pour plus de clarté, dans la copie du code ci-dessous, le 47 permet de
commencer la lecture des étiquettes à la première ligne des sources et
non à la ligne 1. Je souhaiterai pouvoir attribuer le n° de ligne de la
source directement afin de pouvoir l'utiliser avec n'importe que graphique.

J'espère que ma demande est assez claire.

Merci beaucoup,

Jean-Baptiste

Code :

Sub EtiquettesEtValeursA()

Dim i As Integer
With ActiveChart 'Le graphique doit être sélectionné

d = .SeriesCollection(1).Points.Count
For i = 1 To d
With .SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = Range("A" & i + 47).Value & " : " & Range("B" & i
+ 47).Value
End With
Next
End With

End Sub


Francois L
Le #4563411

J'ai maintenant une autre question : comment puis-je attribuer à une
constante le numéro de la ligne de la première valeur source du graphique.
Pour plus de clarté, dans la copie du code ci-dessous, le 47 permet de
commencer la lecture des étiquettes à la première ligne des sources et
non à la ligne 1. Je souhaiterai pouvoir attribuer le n° de ligne de la
source directement afin de pouvoir l'utiliser avec n'importe que graphique.



Re,

Ce qui suit ?

Sub EtiquettesEtValeursA(ValBase As Integer)

Dim i As Integer
With ActiveChart 'Le graphique doit être sélectionné

d = .SeriesCollection(1).Points.Count
For i = 1 To d
With .SeriesCollection(1).Points(i)
.HasDataLabel = True
.DataLabel.Text = Range("A" & i + ValBase).Value & " : " &
Range("B" & i + ValBase).Value
End With
Next
End With

End Sub

Sub test()
EtiquettesEtValeursA (46)
End Sub


--
François L

Francois L
Le #4943401

J'ai maintenant une autre question : comment puis-je attribuer à une
constante le numéro de la ligne de la première valeur source du graphique.
Pour plus de clarté, dans la copie du code ci-dessous, le 47 permet de
commencer la lecture des étiquettes à la première ligne des sources et
non à la ligne 1. Je souhaiterai pouvoir attribuer le n° de ligne de la
source directement afin de pouvoir l'utiliser avec n'importe que graphique.




Bonjour,

La solution qui suit est indépendante de l'emplacement des données sources :

'--------------------------------------
Sub test()
With ActiveChart.SeriesCollection(1)
For i = 1 To .Points.Count
X = Application.WorksheetFunction.Index(.XValues, i)
Y = Application.WorksheetFunction.Index(.Values, i)
.Points(i).HasDataLabel = True
.Points(i).DataLabel.Text = X & " : " & Y
Next
End With
End Sub
'---------------------------------------


--
François L

Publicité
Poster une réponse
Anonyme