calcul de pourcentage automatique dans un graphique
2 réponses
Pmik
Bonsoir,
Je vous soumets mon problème
J'ai 2 séries de données correspondant à 2 années n-1 et n que je souhaite
présenter sous forme d'histogramme, la difficulté est que je souhaite faire
afficher au dessus de la barre de l'année n le pourcentage d'écart entre n
et n-1 automatiquement bien sur !
exemple
n-1 n
Paris 12 20
Lyon 8 4
Rouen 25 30
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
PMO
Bonjour,
Une piste en VBA avec le code suivant à copier dans un module standard. ATTENTION: si vous changez une donnée dans une cellule source les pourcentages du graphique obtenus par la macro ne sont pas mis à jour automatiquement. Il faut relancer la macro à chaque modification.
Marche à suivre: 1) Sélectionnez votre graphique. 2) Faites tourner la macro "AffichePercentN_PMO"
'***************** Option Explicit Sub AffichePercentN_PMO() Dim C As Chart Dim S1 As Object Dim S2 As Object Dim i& Dim x# Set C = ActiveChart If C Is Nothing Then Exit Sub If C.SeriesCollection.Count <> 2 Then Exit Sub Set S1 = C.SeriesCollection(1) Set S2 = C.SeriesCollection(2) S1.HasDataLabels = False S2.HasDataLabels = False S1.HasDataLabels = True S2.HasDataLabels = True For i& = 1 To S1.DataLabels.Count x# = (S2.DataLabels(i&).Caption - S1.DataLabels(i&).Caption) / _ S1.DataLabels(i&).Caption * 100 If CInt(x#) <> x# Then x# = CInt(x# * 100) / 100 With S2.DataLabels(i&) .Caption = x# & "%" .Interior.ColorIndex = 34 .Font.Name = "Arial" .Font.Size = 9 End With Next i& S1.HasDataLabels = False End Sub '*****************
Cordialement. -- PMO Patrick Morange
Bonsoir,
Je vous soumets mon problème J'ai 2 séries de données correspondant à 2 années n-1 et n que je souhaite présenter sous forme d'histogramme, la difficulté est que je souhaite faire afficher au dessus de la barre de l'année n le pourcentage d'écart entre n et n-1 automatiquement bien sur ! exemple n-1 n Paris 12 20 Lyon 8 4 Rouen 25 30
D'avance merci pour votre aide Patrick
Bonjour,
Une piste en VBA avec le code suivant à copier dans un module
standard.
ATTENTION: si vous changez une donnée dans une cellule source
les pourcentages du graphique obtenus par la macro ne sont
pas mis à jour automatiquement. Il faut relancer la macro à
chaque modification.
Marche à suivre:
1) Sélectionnez votre graphique.
2) Faites tourner la macro "AffichePercentN_PMO"
'*****************
Option Explicit
Sub AffichePercentN_PMO()
Dim C As Chart
Dim S1 As Object
Dim S2 As Object
Dim i&
Dim x#
Set C = ActiveChart
If C Is Nothing Then Exit Sub
If C.SeriesCollection.Count <> 2 Then Exit Sub
Set S1 = C.SeriesCollection(1)
Set S2 = C.SeriesCollection(2)
S1.HasDataLabels = False
S2.HasDataLabels = False
S1.HasDataLabels = True
S2.HasDataLabels = True
For i& = 1 To S1.DataLabels.Count
x# = (S2.DataLabels(i&).Caption - S1.DataLabels(i&).Caption) / _
S1.DataLabels(i&).Caption * 100
If CInt(x#) <> x# Then x# = CInt(x# * 100) / 100
With S2.DataLabels(i&)
.Caption = x# & "%"
.Interior.ColorIndex = 34
.Font.Name = "Arial"
.Font.Size = 9
End With
Next i&
S1.HasDataLabels = False
End Sub
'*****************
Cordialement.
--
PMO
Patrick Morange
Bonsoir,
Je vous soumets mon problème
J'ai 2 séries de données correspondant à 2 années n-1 et n que je souhaite
présenter sous forme d'histogramme, la difficulté est que je souhaite faire
afficher au dessus de la barre de l'année n le pourcentage d'écart entre n
et n-1 automatiquement bien sur !
exemple
n-1 n
Paris 12 20
Lyon 8 4
Rouen 25 30
Une piste en VBA avec le code suivant à copier dans un module standard. ATTENTION: si vous changez une donnée dans une cellule source les pourcentages du graphique obtenus par la macro ne sont pas mis à jour automatiquement. Il faut relancer la macro à chaque modification.
Marche à suivre: 1) Sélectionnez votre graphique. 2) Faites tourner la macro "AffichePercentN_PMO"
'***************** Option Explicit Sub AffichePercentN_PMO() Dim C As Chart Dim S1 As Object Dim S2 As Object Dim i& Dim x# Set C = ActiveChart If C Is Nothing Then Exit Sub If C.SeriesCollection.Count <> 2 Then Exit Sub Set S1 = C.SeriesCollection(1) Set S2 = C.SeriesCollection(2) S1.HasDataLabels = False S2.HasDataLabels = False S1.HasDataLabels = True S2.HasDataLabels = True For i& = 1 To S1.DataLabels.Count x# = (S2.DataLabels(i&).Caption - S1.DataLabels(i&).Caption) / _ S1.DataLabels(i&).Caption * 100 If CInt(x#) <> x# Then x# = CInt(x# * 100) / 100 With S2.DataLabels(i&) .Caption = x# & "%" .Interior.ColorIndex = 34 .Font.Name = "Arial" .Font.Size = 9 End With Next i& S1.HasDataLabels = False End Sub '*****************
Cordialement. -- PMO Patrick Morange
Bonsoir,
Je vous soumets mon problème J'ai 2 séries de données correspondant à 2 années n-1 et n que je souhaite présenter sous forme d'histogramme, la difficulté est que je souhaite faire afficher au dessus de la barre de l'année n le pourcentage d'écart entre n et n-1 automatiquement bien sur ! exemple n-1 n Paris 12 20 Lyon 8 4 Rouen 25 30
D'avance merci pour votre aide Patrick
Pmik
Bonsoir, Merci ! Ca marche super bien c'est exactement ce que je souhaitais obtenir ! Cordialement Patrick
Bonsoir,
Merci !
Ca marche super bien c'est exactement ce que je souhaitais obtenir !
Cordialement
Patrick