OVH Cloud OVH Cloud

Calculer et afficher les pourcentages dans un histogramme empilé

13 réponses
Avatar
desta
Bonjour,

J'ai actuellement fait un histogramme empilé pour retranscrire la part des
ventes des produits par mois.
Lorsque je fais afficher les étiquettes de données, celles-ci corespondent
au montant des ventes.
Or, j'aimerai que ces nombres soient retranscrit en pourcentage et que les
étiquette de données affichent les pourcentages ainsi obtenus. Un peu comme
pour les camenberts.

Merci par avance pour votre aide.

Desta

3 réponses

1 2
Avatar
JB
http://cjoint.com/?csqIpF3qp2

JB

On 18 fév, 16:12, desta
wrote:
Voila

http://cjoint.com/?csqjWeoOIG




Je n'ai pas 2007. Il faut l'enregister au format XLS.

JB
On 18 fév, 15:48, desta
wrote:
Voilà, ce n'est qu'un apperçu. Il peut y avoir plus de produits et plus
d'année ou de mois
Merci encore

http://cjoint.com/?cspTPiqEZn

Desta




Met ton fichier en PJ surhttp://www.cjoint.com

JB
On 18 fév, 15:19, desta
wrote:
Encore une fois merci mais je n'y arrive pas... J'ai compris dans la macro
qu'il fallait mettre le nombre de colonne à n = (à la place de ton 3).
C'est peut-être à cause de mon tableau car il se compose de 3 données, 2 en
horizontale et une en verticale.
Pour reprendre ton exemple se serait comme si tu avais 2006 en des sous les
12 mois, puis 2007, en dessous les 12 mois, etc. Et en vertical le nom des
produits.

Sinon, la macro indique une erreure sur cette ligne:
tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection (col).Val­­­ues, i)

Merci encore bcp pour ton aide

Desta






-Il s'agit bien d'une macro
-Alt+F11
-Insertion module
-Créer un bouton

http://boisgontierjacques.free.fr/pages_site/enregistrementauto.h tm#E....

JB

On 18 fév, 13:29, desta m>
wrote:
JB,

Merci bcp pour ta réponse, c exactement ce que je voudrais f aire.... Par
contre, il s'agit d'une macro c ça ? Si c le cas peux-tu m'e xpliquer comment
l'activée car là je ne m'y connais pas du tout.
Si ce n'est pas une macro, peux-tu m'expliquer la procédure ?
Merci beaucoup
Desta








Bonjour,

Sub commentaire()
On Error Resume Next
n = 3
For col = 1 To n
 Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).App lyDataLabels
Type:=xlDataLabelsShowLabel
Next
On Error GoTo 0
For i = 1 To
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points.C ount
  tot = 0
  For col = 1 To n
    tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesColl ection(col).Val­­­­ues,
i)
  Next col
  For col = 1 To n

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points (i).DataLabel.F­­­­ont.Size
= 6
    y =
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesColl ection(col).Val­­­­ues,
i) / tot

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points (i).DataLabel.T­­­­ext
= Format(y, "0.00%")
  Next col
Next i
End Sub

http://cjoint.com/?cslc06cvZZ

JB
http://boisgontierjacques.free.fr

On 18 fév, 10:18, desta t.com>
wrote:
Bonjour,

J'ai actuellement fait un histogramme empilé pour retran scrire la part des
ventes des produits par mois.
Lorsque je fais afficher les étiquettes de données, ce lles-ci corespondent
au montant des ventes.
Or, j'aimerai que ces nombres soient retranscrit en pource ntage et que les
étiquette de données affichent les pourcentages ainsi obtenus. Un peu comme
pour les camenberts.

Merci par avance pour votre aide.

Desta- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



- Afficher le texte des messages précédents -










Avatar
desta
c super merci encore...

Je crois que je vais jouer la pénible encore un peu ;-(

En fait, le doc final n'est pas sur Excel mais sur PowerPoint.

J'ai essayer d'appliquer la macro direct depuis le fichier Excel qui s'ouvre
quand on veut insérer un graphique depuis PPT mais évidement ce n'est pas
possible.

Est-ce que tu as une solution ?

Sinon, je peux toujours les copier/coller mais je perds le lien
inévitablement...

Merci encore

Desta

http://cjoint.com/?csqIpF3qp2

JB

On 18 fév, 16:12, desta
wrote:
Voila

http://cjoint.com/?csqjWeoOIG




Je n'ai pas 2007. Il faut l'enregister au format XLS.

JB
On 18 fév, 15:48, desta
wrote:
Voilà, ce n'est qu'un apperçu. Il peut y avoir plus de produits et plus
d'année ou de mois
Merci encore

http://cjoint.com/?cspTPiqEZn

Desta




Met ton fichier en PJ surhttp://www.cjoint.com

JB
On 18 fév, 15:19, desta
wrote:
Encore une fois merci mais je n'y arrive pas... J'ai compris dans la macro
qu'il fallait mettre le nombre de colonne à n = (à la place de ton 3).
C'est peut-être à cause de mon tableau car il se compose de 3 données, 2 en
horizontale et une en verticale.
Pour reprendre ton exemple se serait comme si tu avais 2006 en dessous les
12 mois, puis 2007, en dessous les 12 mois, etc. Et en vertical le nom des
produits.

Sinon, la macro indique une erreure sur cette ligne:
tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Val­­­ues, i)

Merci encore bcp pour ton aide

Desta






-Il s'agit bien d'une macro
-Alt+F11
-Insertion module
-Créer un bouton

http://boisgontierjacques.free.fr/pages_site/enregistrementauto.htm#E....

JB

On 18 fév, 13:29, desta
wrote:
JB,

Merci bcp pour ta réponse, c exactement ce que je voudrais faire.... Par
contre, il s'agit d'une macro c ça ? Si c le cas peux-tu m'expliquer comment
l'activée car là je ne m'y connais pas du tout.
Si ce n'est pas une macro, peux-tu m'expliquer la procédure ?
Merci beaucoup
Desta








Bonjour,

Sub commentaire()
On Error Resume Next
n = 3
For col = 1 To n
Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).ApplyDataLabels
Type:=xlDataLabelsShowLabel
Next
On Error GoTo 0
For i = 1 To
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Points.Count
tot = 0
For col = 1 To n
tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Val­­­­ues,
i)
Next col
For col = 1 To n

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points(i).DataLabel.F­­­­ont.Size
= 6
y > > > > > > > > > Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Val­­­­ues,
i) / tot

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Points(i).DataLabel.T­­­­ext
= Format(y, "0.00%")
Next col
Next i
End Sub

http://cjoint.com/?cslc06cvZZ

JB
http://boisgontierjacques.free.fr

On 18 fév, 10:18, desta
wrote:
Bonjour,

J'ai actuellement fait un histogramme empilé pour retranscrire la part des
ventes des produits par mois.
Lorsque je fais afficher les étiquettes de données, celles-ci corespondent
au montant des ventes.
Or, j'aimerai que ces nombres soient retranscrit en pourcentage et que les
étiquette de données affichent les pourcentages ainsi obtenus. Un peu comme
pour les camenberts.

Merci par avance pour votre aide.

Desta- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -














Avatar
JB
Sous PP, copier/collage spécial/coller avecliaison

http://cjoint.com/?cssmq4h3af

Sub auto_open()
graphe 1
graphe 2
End Sub

Sub graphe(g)
On Error Resume Next
n = 4 ' nombre de mois
'g = 2 ' no graphe
For col = 1 To n
Sheets(1).ChartObjects(g).Chart.SeriesCollection(col).ApplyDataLabels
Type:=xlDataLabelsShowLabel
Next
On Error GoTo 0
For i = 1 To
Sheets(1).ChartObjects(g).Chart.SeriesCollection(1).Points.Count
tot = 0
For col = 1 To n
tot = tot +
Application.Index(Sheets(1).ChartObjects(g).Chart.SeriesCollection(col).Valu es,
i)
Next col
For col = 1 To n

Sheets(1).ChartObjects(g).Chart.SeriesCollection(col).Points(i).DataLabel.Fo nt.Size
= 6
If tot > 0 Then
y =
Application.Index(Sheets(1).ChartObjects(g).Chart.SeriesCollection(col).Valu es,
i) / tot

Sheets(1).ChartObjects(g).Chart.SeriesCollection(col).Points(i).DataLabel.Te xt
= Format(y, "0.00%")
End If
Next col
Next i
End Sub

JB


On 18 fév, 17:25, desta
wrote:
c super merci encore...

Je crois que je vais jouer la pénible encore un peu ;-(

En fait, le doc final n'est pas sur Excel mais sur PowerPoint.

J'ai essayer d'appliquer la macro direct depuis le fichier Excel qui s'ouv re
quand on veut insérer un graphique depuis PPT mais évidement ce n'est pas
possible.

Est-ce que tu as une solution ?

Sinon, je peux toujours les copier/coller mais je perds le lien
inévitablement...

Merci encore

Desta



http://cjoint.com/?csqIpF3qp2

JB

On 18 fév, 16:12, desta
wrote:
Voila

http://cjoint.com/?csqjWeoOIG




Je n'ai pas 2007. Il faut l'enregister au format XLS.

JB
On 18 fév, 15:48, desta
wrote:
Voilà, ce n'est qu'un apperçu. Il peut y avoir plus de produit s et plus
d'année ou de mois
Merci encore

http://cjoint.com/?cspTPiqEZn

Desta






Met ton fichier en PJ surhttp://www.cjoint.com

JB
On 18 fév, 15:19, desta m>
wrote:
Encore une fois merci mais je n'y arrive pas... J'ai compris d ans la macro
qu'il fallait mettre le nombre de colonne à n = (à la pl ace de ton 3).
C'est peut-être à cause de mon tableau car il se compose d e 3 données, 2 en
horizontale et une en verticale.
Pour reprendre ton exemple se serait comme si tu avais 2006 en dessous les
12 mois, puis 2007, en dessous les 12 mois, etc. Et en vertica l le nom des
produits.

Sinon, la macro indique une erreure sur cette ligne:
tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.SeriesCollec tion(col).Val­­­­ues, i)

Merci encore bcp pour ton aide

Desta








-Il s'agit bien d'une macro
-Alt+F11
-Insertion module
-Créer un bouton

http://boisgontierjacques.free.fr/pages_site/enregistrementau to.htm#E....

JB

On 18 fév, 13:29, desta t.com>
wrote:
JB,

Merci bcp pour ta réponse, c exactement ce que je voudra is faire.... Par
contre, il s'agit d'une macro c ça ? Si c le cas peux-tu m'expliquer comment
l'activée car là je ne m'y connais pas du tout.
Si ce n'est pas une macro, peux-tu m'expliquer la procéd ure ?
Merci beaucoup
Desta










Bonjour,

Sub commentaire()
On Error Resume Next
n = 3
For col = 1 To n
 Sheets(1).ChartObjects(1).Chart.SeriesCollection(col) .ApplyDataLabels
Type:=xlDataLabelsShowLabel
Next
On Error GoTo 0
For i = 1 To
Sheets(1).ChartObjects(1).Chart.SeriesCollection(1).Poin ts.Count
  tot = 0
  For col = 1 To n
    tot = tot +
Application.Index(Sheets(1).ChartObjects(1).Chart.Series Collection(col).Val­­­­­ues,
i)
  Next col
  For col = 1 To n

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Po ints(i).DataLabel.F­­­­­ont.Size
= 6
    y =
Application.Index(Sheets(1).ChartObjects(1).Chart.Series Collection(col).Val­­­­­ues,
i) / tot

Sheets(1).ChartObjects(1).Chart.SeriesCollection(col).Po ints(i).DataLabel.T­­­­­ext
= Format(y, "0.00%")
  Next col
Next i
End Sub

http://cjoint.com/?cslc06cvZZ

JB
http://boisgontierjacques.free.fr

On 18 fév, 10:18, desta osoft.com>
wrote:
Bonjour,

J'ai actuellement fait un histogramme empilé pour re transcrire la part des
ventes des produits par mois.
Lorsque je fais afficher les étiquettes de données , celles-ci corespondent
au montant des ventes.
Or, j'aimerai que ces nombres soient retranscrit en po urcentage et que les
étiquette de données affichent les pourcentages ai nsi obtenus. Un peu comme
pour les camenberts.

Merci par avance pour votre aide.

Desta- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -



- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -



- Afficher le texte des messages précédents -












1 2