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

Graphique secteur : rajouter infos aux données selon conditions

20 réponses
Avatar
gterras
Bonjour =E0 tous,

Je suis face =E0 un probl=E8me plut=F4t complexe concernant les graphiques
d'excel (office 2007).

Je vais essayer d'=EAtre le plus clair possible, c'est un peu difficile
=E0 expliquer.

- Soit un graphique "camembert" =E0 5 secteurs (A, B, C, D, E).
- La valeur de ces secteurs est en pourcentage.

(jusqu'ici =E7a va :)

J'aimerais faire entrer en compte une deuxi=E8me valeur dans ce
graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
de l'indice. En gros, ca donne :

A 12% ind.122
B 16% ind. 98
C 18% ind. 112
D 19% ind. 56
E 23% ind. 75

Seules les deux premi=E8res colonnes agissent sur le graphique. Mon
probl=E8me est que j'aimerais faire appara=EEtre l'indice sur le
graphique, =E0 cot=E9 du pourcentage, si et seulement si il est sup=E9rieur
=E0 110.

Difficult=E9 suppl=E9mentaire : "ind." et "122" sont dans deux cellules
distinctes, je n'ai pas le choix.

J'ai mis une image en ligne pour que ca soit plus compr=E9hensible :
http://kursus.free.fr/exemple.jpg

En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur =E0
l'int=E9rieur du graphique, ce qui n'est pas possible =E0 faire en passant
par les options il me semble.

J'ai achet=E9 un livre sur le Visual Basic mais je peine =E0 arriver =E0 ce
r=E9sultat.
J'ai conscience que c'est un travail assez complexe, donc je ne
vexerai pas si personne ne se penche dessus :)

Merci d'avance cependant =E0 celui ou ceux qui pourront m'aider.

Merci
gr=E9goire

10 réponses

1 2
Avatar
Daniel.C
Bonjoour.
Exécute la macro suivante :

Sub Etiquettes()
Dim Pt As Point
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels
If Cells(i, 3) > 110 Then
.Points(i).DataLabel.Text = Format(Cells(i, 2), "#%") _
& vbLf & "ind " & Cells(i, 3)
Else
.Points(i).DataLabel.Text = Format(Cells(i, 2), "#%")
End If
Next i
End With
End Sub

Cordialement.
Daniel

Bonjour à tous,

Je suis face à un problème plutôt complexe concernant les graphiques
d'excel (office 2007).

Je vais essayer d'être le plus clair possible, c'est un peu difficile
à expliquer.

- Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
- La valeur de ces secteurs est en pourcentage.

(jusqu'ici ça va :)

J'aimerais faire entrer en compte une deuxième valeur dans ce
graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
de l'indice. En gros, ca donne :

A 12% ind.122
B 16% ind. 98
C 18% ind. 112
D 19% ind. 56
E 23% ind. 75

Seules les deux premières colonnes agissent sur le graphique. Mon
problème est que j'aimerais faire apparaître l'indice sur le
graphique, à coté du pourcentage, si et seulement si il est supérieur
à 110.

Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
distinctes, je n'ai pas le choix.

J'ai mis une image en ligne pour que ca soit plus compréhensible :
http://kursus.free.fr/exemple.jpg

En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
l'intérieur du graphique, ce qui n'est pas possible à faire en passant
par les options il me semble.

J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
résultat.
J'ai conscience que c'est un travail assez complexe, donc je ne
vexerai pas si personne ne se penche dessus :)

Merci d'avance cependant à celui ou ceux qui pourront m'aider.

Merci
grégoire


Avatar
gterras
Wouhou !!

Merci Daniel, ca marche nickel !

Bon évidemment il faut que je rajoute une question de boulet: j'essaye
d'intégrer la macro qui permet de rajouter les étiquettes de données
avant le %, c'est à dire "A 23% ind.120" mais ca bloque.

Et puis tiens je suis fou j'en rajoute une couche mais facultative
(cad celui qui répond aura droit une photo de ma soeur à la plage),
est-il possible d'exclure une ligne de la macro (par exemple la B,
parce que peu importe que son indice soit supérieur à 110, je ne veux
pas qu'elle apparaisse).

Merci beaucoup en tout cas, tu viens de me faire gagner 30 minutes de
boulot par mois !!

On 23 oct, 18:10, Daniel.C wrote:
Bonjoour.
Exécute la macro suivante :

Sub Etiquettes()
     Dim Pt As Point
     With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
         For i = 1 To .Points.Count
             .Points(i).ApplyDataLabels
             If Cells(i, 3) > 110 Then
                .Points(i).DataLabel.Text = Format(Cell s(i, 2), "#%") _
                    & vbLf & "ind " & Cells(i, 3)
             Else
                .Points(i).DataLabel.Text = Format(Cell s(i, 2), "#%")
             End If
         Next i
     End With
End Sub

Cordialement.
Daniel

> Bonjour à tous,

> Je suis face à un problème plutôt complexe concernant les graphiq ues
> d'excel (office 2007).

> Je vais essayer d'être le plus clair possible, c'est un peu difficile
> à expliquer.

> - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> - La valeur de ces secteurs est en pourcentage.

> (jusqu'ici ça va :)

> J'aimerais faire entrer en compte une deuxième valeur dans ce
> graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
> de l'indice. En gros, ca donne :

> A  12%  ind.122
> B  16%  ind. 98
> C  18%  ind. 112
> D  19%  ind. 56
> E  23%  ind. 75

> Seules les deux premières colonnes agissent sur le graphique. Mon
> problème est que j'aimerais faire apparaître l'indice sur le
> graphique, à coté du pourcentage, si et seulement si il est supér ieur
> à 110.

> Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
> distinctes, je n'ai pas le choix.

> J'ai mis une image en ligne pour que ca soit plus compréhensible :
>http://kursus.free.fr/exemple.jpg

> En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> l'intérieur du graphique, ce qui n'est pas possible à faire en pass ant
> par les options il me semble.

> J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> résultat.
> J'ai conscience que c'est un travail assez complexe, donc je ne
> vexerai pas si personne ne se penche dessus :)

> Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> Merci
> grégoire


Avatar
Daniel.C
Que ne ferais-je pas pour la photo de ta soeur ;-)))

Sub Etiquettes()
Dim Pt As Point
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels xlDataLabelsShowNone
If Cells(i, 1) <> "B" Then
.Points(i).ApplyDataLabels
If Cells(i, 3) > 110 Then
.Points(i).DataLabel.Text = Cells(i, 1) & " " & _
Format(Cells(i, 2), "#%") & vbLf & "ind " & Cells(i,
3)
Else
.Points(i).DataLabel.Text = Format(Cells(i, 2),
"#%")
End If
End If
Next i
End With
End Sub

Daniel

Wouhou !!

Merci Daniel, ca marche nickel !

Bon évidemment il faut que je rajoute une question de boulet: j'essaye
d'intégrer la macro qui permet de rajouter les étiquettes de données
avant le %, c'est à dire "A 23% ind.120" mais ca bloque.

Et puis tiens je suis fou j'en rajoute une couche mais facultative
(cad celui qui répond aura droit une photo de ma soeur à la plage),
est-il possible d'exclure une ligne de la macro (par exemple la B,
parce que peu importe que son indice soit supérieur à 110, je ne veux
pas qu'elle apparaisse).

Merci beaucoup en tout cas, tu viens de me faire gagner 30 minutes de
boulot par mois !!

On 23 oct, 18:10, Daniel.C wrote:
Bonjoour.
Exécute la macro suivante :

Sub Etiquettes()
     Dim Pt As Point
     With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
         For i = 1 To .Points.Count
             .Points(i).ApplyDataLabels
             If Cells(i, 3) > 110 Then
                .Points(i).DataLabel.Text = Format(Cells(i, 2), "#%") _
                    & vbLf & "ind " & Cells(i, 3)
             Else
                .Points(i).DataLabel.Text = Format(Cells(i, 2), "#%")
             End If
         Next i
     End With
End Sub

Cordialement.
Daniel

Bonjour à tous,



Je suis face à un problème plutôt complexe concernant les graphiques
d'excel (office 2007).



Je vais essayer d'être le plus clair possible, c'est un peu difficile
à expliquer.



- Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
- La valeur de ces secteurs est en pourcentage.
(jusqu'ici ça va :)



J'aimerais faire entrer en compte une deuxième valeur dans ce
graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
de l'indice. En gros, ca donne :



A  12%  ind.122
B  16%  ind. 98
C  18%  ind. 112
D  19%  ind. 56
E  23%  ind. 75



Seules les deux premières colonnes agissent sur le graphique. Mon
problème est que j'aimerais faire apparaître l'indice sur le
graphique, à coté du pourcentage, si et seulement si il est supérieur
à 110.



Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
distinctes, je n'ai pas le choix.



J'ai mis une image en ligne pour que ca soit plus compréhensible :
http://kursus.free.fr/exemple.jpg



En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
l'intérieur du graphique, ce qui n'est pas possible à faire en passant
par les options il me semble.



J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
résultat.
J'ai conscience que c'est un travail assez complexe, donc je ne
vexerai pas si personne ne se penche dessus :)
Merci d'avance cependant à celui ou ceux qui pourront m'aider.
Merci
grégoire






Avatar
garnote
Bonsoir,

Une variante de la macro de Daniel :
En supposant que ton graphique se nomme "Graphique 3",
tu sélectionnes tes quatre colonnes et tu appelles cette macro :

Sub Etiquettes1()
Dim Pt As Point
Dim s As Range
Set s = Selection
With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels
If s(i, 4) > 110 Then
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
& " " & s(i, 3) & " " & s(i, 4)
Else
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
End If
Next i
End With
End Sub

Serge



a écrit dans le message de news:
Bonjour à tous,

Je suis face à un problème plutôt complexe concernant les graphiques
d'excel (office 2007).

Je vais essayer d'être le plus clair possible, c'est un peu difficile
à expliquer.

- Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
- La valeur de ces secteurs est en pourcentage.

(jusqu'ici ça va :)

J'aimerais faire entrer en compte une deuxième valeur dans ce
graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
de l'indice. En gros, ca donne :

A 12% ind.122
B 16% ind. 98
C 18% ind. 112
D 19% ind. 56
E 23% ind. 75

Seules les deux premières colonnes agissent sur le graphique. Mon
problème est que j'aimerais faire apparaître l'indice sur le
graphique, à coté du pourcentage, si et seulement si il est supérieur
à 110.

Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
distinctes, je n'ai pas le choix.

J'ai mis une image en ligne pour que ca soit plus compréhensible :
http://kursus.free.fr/exemple.jpg

En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
l'intérieur du graphique, ce qui n'est pas possible à faire en passant
par les options il me semble.

J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
résultat.
J'ai conscience que c'est un travail assez complexe, donc je ne
vexerai pas si personne ne se penche dessus :)

Merci d'avance cependant à celui ou ceux qui pourront m'aider.

Merci
grégoire
Avatar
garnote
Et pour enlever l'étiquette de la ligne 2 :

Sub Etiquettes1()
Dim Pt As Point
Dim s As Range
Set s = Selection
With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels
If i = 2 Then
.Points(i).DataLabel.Text = ""
Else
If s(i, 4) > 110 Then
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
& " " & s(i, 3) & " " & s(i, 4)
Else
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
End If
End If
Next i
End With
End Sub


Serge

















"garnote" a écrit dans le message de news:
Bonsoir,

Une variante de la macro de Daniel :
En supposant que ton graphique se nomme "Graphique 3",
tu sélectionnes tes quatre colonnes et tu appelles cette macro :

Sub Etiquettes1()
Dim Pt As Point
Dim s As Range
Set s = Selection
With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels
If s(i, 4) > 110 Then
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
& " " & s(i, 3) & " " & s(i, 4)
Else
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
End If
Next i
End With
End Sub

Serge



a écrit dans le message de news:
Bonjour à tous,

Je suis face à un problème plutôt complexe concernant les graphiques
d'excel (office 2007).

Je vais essayer d'être le plus clair possible, c'est un peu difficile
à expliquer.

- Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
- La valeur de ces secteurs est en pourcentage.

(jusqu'ici ça va :)

J'aimerais faire entrer en compte une deuxième valeur dans ce
graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
de l'indice. En gros, ca donne :

A 12% ind.122
B 16% ind. 98
C 18% ind. 112
D 19% ind. 56
E 23% ind. 75

Seules les deux premières colonnes agissent sur le graphique. Mon
problème est que j'aimerais faire apparaître l'indice sur le
graphique, à coté du pourcentage, si et seulement si il est supérieur
à 110.

Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
distinctes, je n'ai pas le choix.

J'ai mis une image en ligne pour que ca soit plus compréhensible :
http://kursus.free.fr/exemple.jpg

En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
l'intérieur du graphique, ce qui n'est pas possible à faire en passant
par les options il me semble.

J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
résultat.
J'ai conscience que c'est un travail assez complexe, donc je ne
vexerai pas si personne ne se penche dessus :)

Merci d'avance cependant à celui ou ceux qui pourront m'aider.

Merci
grégoire



Avatar
gterras
Excellent !!!!

Mille fois merci !! C'est génial de voir qu'il existe encore des âmes
charitables !!
Je cherche dans mon DD des photos sympas :)

Et une toute mini dernière question pour finir : j'aimerais modifier
la couleur et la taille police de l'étiquette ainsi créée (blanc et
13).
Mais il faut croire que je ne suis vraiment pas doué, toutes mes
tentatives se terminent par une erreur...

Je suis vraiment désolé d'être un boulet !
Merci pour tout.

On 23 oct, 19:28, "garnote" wrote:
Et pour enlever l'étiquette de la ligne 2 :

Sub Etiquettes1()
     Dim Pt As Point
     Dim s As Range
     Set s = Selection
     With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesColle ction(1)
         For i = 1 To .Points.Count
             .Points(i).ApplyDataLabels
             If i = 2 Then
                  .Points(i).DataLabel.Text = ""
             Else
                  If s(i, 4) > 110 Then
                     .Points(i).DataLabel.Text = s(i, 1) & "  " & Format(s(i, 2), "#%") _
                         & " " & s(i, 3) & " " & s(i, 4)
                  Else
                     .Points(i).DataLabel.Text = s(i, 1) & "  " & Format(s(i, 2), "#%")
                  End If
             End If
         Next i
     End With
End Sub

Serge

"garnote" a écrit dans le message de news:

> Bonsoir,

> Une variante de la macro de Daniel :
> En supposant que ton graphique se nomme "Graphique 3",
> tu sélectionnes tes quatre colonnes et tu appelles cette macro :

> Sub Etiquettes1()
>     Dim Pt As Point
>     Dim s As Range
>     Set s = Selection
>     With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollec tion(1)
>         For i = 1 To .Points.Count
>             .Points(i).ApplyDataLabels
>             If s(i, 4) > 110 Then
>                .Points(i).DataLabel.Text = s(i, 1) & "  " & Format(s(i, 2), "#%") _
>                    & " " & s(i, 3) & " " & s(i, 4)
>             Else
>                .Points(i).DataLabel.Text = s(i, 1) & "  " & Format(s(i, 2), "#%")
>             End If
>         Next i
>     End With
> End Sub

> Serge

> a écrit dans le message de news: e3f1d4bd-07da-4d
> Bonjour à tous,

> Je suis face à un problème plutôt complexe concernant les graphiq ues
> d'excel (office 2007).

> Je vais essayer d'être le plus clair possible, c'est un peu difficile
> à expliquer.

> - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> - La valeur de ces secteurs est en pourcentage.

> (jusqu'ici ça va :)

> J'aimerais faire entrer en compte une deuxième valeur dans ce
> graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
> de l'indice. En gros, ca donne :

> A  12%  ind.122
> B  16%  ind. 98
> C  18%  ind. 112
> D  19%  ind. 56
> E  23%  ind. 75

> Seules les deux premières colonnes agissent sur le graphique. Mon
> problème est que j'aimerais faire apparaître l'indice sur le
> graphique, à coté du pourcentage, si et seulement si il est supér ieur
> à 110.

> Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
> distinctes, je n'ai pas le choix.

> J'ai mis une image en ligne pour que ca soit plus compréhensible :
>http://kursus.free.fr/exemple.jpg

> En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> l'intérieur du graphique, ce qui n'est pas possible à faire en pass ant
> par les options il me semble.

> J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> résultat.
> J'ai conscience que c'est un travail assez complexe, donc je ne
> vexerai pas si personne ne se penche dessus :)

> Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> Merci
> grégoire


Avatar
garnote
Bonjour,

Fais un clic sur une étiquette. Toutes tes étiquettes
seront alors sélectionnées.
Dans la barre d'outils "Mise en forme", choisis la
taille et la couleur que tu désires.

Bonne journée,

Serge



a écrit dans le message de news:
Excellent !!!!

Mille fois merci !! C'est génial de voir qu'il existe encore des âmes
charitables !!
Je cherche dans mon DD des photos sympas :)

Et une toute mini dernière question pour finir : j'aimerais modifier
la couleur et la taille police de l'étiquette ainsi créée (blanc et
13).
Mais il faut croire que je ne suis vraiment pas doué, toutes mes
tentatives se terminent par une erreur...

Je suis vraiment désolé d'être un boulet !
Merci pour tout.

On 23 oct, 19:28, "garnote" wrote:
Et pour enlever l'étiquette de la ligne 2 :

Sub Etiquettes1()
Dim Pt As Point
Dim s As Range
Set s = Selection
With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
.Points(i).ApplyDataLabels
If i = 2 Then
.Points(i).DataLabel.Text = ""
Else
If s(i, 4) > 110 Then
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
& " " & s(i, 3) & " " & s(i, 4)
Else
.Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
End If
End If
Next i
End With
End Sub

Serge

"garnote" a écrit dans le message de news:

> Bonsoir,

> Une variante de la macro de Daniel :
> En supposant que ton graphique se nomme "Graphique 3",
> tu sélectionnes tes quatre colonnes et tu appelles cette macro :

> Sub Etiquettes1()
> Dim Pt As Point
> Dim s As Range
> Set s = Selection
> With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> For i = 1 To .Points.Count
> .Points(i).ApplyDataLabels
> If s(i, 4) > 110 Then
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> & " " & s(i, 3) & " " & s(i, 4)
> Else
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> End If
> Next i
> End With
> End Sub

> Serge

> a écrit dans le message de news:
> Bonjour à tous,

> Je suis face à un problème plutôt complexe concernant les graphiques
> d'excel (office 2007).

> Je vais essayer d'être le plus clair possible, c'est un peu difficile
> à expliquer.

> - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> - La valeur de ces secteurs est en pourcentage.

> (jusqu'ici ça va :)

> J'aimerais faire entrer en compte une deuxième valeur dans ce
> graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
> de l'indice. En gros, ca donne :

> A 12% ind.122
> B 16% ind. 98
> C 18% ind. 112
> D 19% ind. 56
> E 23% ind. 75

> Seules les deux premières colonnes agissent sur le graphique. Mon
> problème est que j'aimerais faire apparaître l'indice sur le
> graphique, à coté du pourcentage, si et seulement si il est supérieur
> à 110.

> Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
> distinctes, je n'ai pas le choix.

> J'ai mis une image en ligne pour que ca soit plus compréhensible :
>http://kursus.free.fr/exemple.jpg

> En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> l'intérieur du graphique, ce qui n'est pas possible à faire en passant
> par les options il me semble.

> J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> résultat.
> J'ai conscience que c'est un travail assez complexe, donc je ne
> vexerai pas si personne ne se penche dessus :)

> Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> Merci
> grégoire


Avatar
gterras
On 24 oct, 15:03, "garnote" wrote:
Bonjour,

Fais un clic sur une étiquette. Toutes tes étiquettes
seront alors sélectionnées.
Dans la barre d'outils "Mise en forme", choisis la
taille et la couleur que tu désires.

Bonne journée,

Serge

a écrit dans le message de news: 70aebb2a-4679-4e91
Excellent !!!!

Mille fois merci !! C'est génial de voir qu'il existe encore des âmes
charitables !!
Je cherche dans mon DD des photos sympas :)

Et une toute mini dernière question pour finir : j'aimerais modifier
la couleur et la taille police de l'étiquette ainsi créée (blanc et
13).
Mais il faut croire que je ne suis vraiment pas doué, toutes mes
tentatives se terminent par une erreur...

Je suis vraiment désolé d'être un boulet !
Merci pour tout.

On 23 oct, 19:28, "garnote" wrote:

> Et pour enlever l'étiquette de la ligne 2 :

> Sub Etiquettes1()
> Dim Pt As Point
> Dim s As Range
> Set s = Selection
> With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> For i = 1 To .Points.Count
> .Points(i).ApplyDataLabels
> If i = 2 Then
> .Points(i).DataLabel.Text = ""
> Else
> If s(i, 4) > 110 Then
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> & " " & s(i, 3) & " " & s(i, 4)
> Else
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> End If
> End If
> Next i
> End With
> End Sub

> Serge

> "garnote" a écrit dans le message de news :

> > Bonsoir,

> > Une variante de la macro de Daniel :
> > En supposant que ton graphique se nomme "Graphique 3",
> > tu sélectionnes tes quatre colonnes et tu appelles cette macro :

> > Sub Etiquettes1()
> > Dim Pt As Point
> > Dim s As Range
> > Set s = Selection
> > With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1 )
> > For i = 1 To .Points.Count
> > .Points(i).ApplyDataLabels
> > If s(i, 4) > 110 Then
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> > & " " & s(i, 3) & " " & s(i, 4)
> > Else
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> > End If
> > Next i
> > End With
> > End Sub

> > Serge

> > a écrit dans le message de news: e3f1d4bd-07da-
> > Bonjour à tous,

> > Je suis face à un problème plutôt complexe concernant les graph iques
> > d'excel (office 2007).

> > Je vais essayer d'être le plus clair possible, c'est un peu diffici le
> > à expliquer.

> > - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> > - La valeur de ces secteurs est en pourcentage.

> > (jusqu'ici ça va :)

> > J'aimerais faire entrer en compte une deuxième valeur dans ce
> > graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agi t
> > de l'indice. En gros, ca donne :

> > A 12% ind.122
> > B 16% ind. 98
> > C 18% ind. 112
> > D 19% ind. 56
> > E 23% ind. 75

> > Seules les deux premières colonnes agissent sur le graphique. Mon
> > problème est que j'aimerais faire apparaître l'indice sur le
> > graphique, à coté du pourcentage, si et seulement si il est sup érieur
> > à 110.

> > Difficulté supplémentaire : "ind." et "122" sont dans deux cellul es
> > distinctes, je n'ai pas le choix.

> > J'ai mis une image en ligne pour que ca soit plus compréhensible :
> >http://kursus.free.fr/exemple.jpg

> > En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> > l'intérieur du graphique, ce qui n'est pas possible à faire en pa ssant
> > par les options il me semble.

> > J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> > résultat.
> > J'ai conscience que c'est un travail assez complexe, donc je ne
> > vexerai pas si personne ne se penche dessus :)

> > Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> > Merci
> > grégoire



Hello,

et merci.

J'ai oublié de préciser que je souhaitais passer par une macro, je
dois avoir une centaine d'onglets à traiter régulièrement...

Ma soeur travaille pour Elite sur son temps libre.. (non je blague :(
Avatar
garnote
Bonjour,

Alors quelque chose du genre :

Sub Etiquettes2()
Dim Pt As Point
Dim s As Range
Set s = Selection
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
For i = 1 To .Points.Count
With .Points(i)
.ApplyDataLabels
.DataLabel.Font.Size = 13
.DataLabel.Font.ColorIndex = 2
If s(i, 4) > 110 Then
.DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
& " " & s(i, 3) & " " & s(i, 4)
Else
.DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
End If
End With
Next i
End With
End Sub


Serge


a écrit dans le message de news:
On 24 oct, 15:03, "garnote" wrote:
Bonjour,

Fais un clic sur une étiquette. Toutes tes étiquettes
seront alors sélectionnées.
Dans la barre d'outils "Mise en forme", choisis la
taille et la couleur que tu désires.

Bonne journée,

Serge

a écrit dans le message de news:
Excellent !!!!

Mille fois merci !! C'est génial de voir qu'il existe encore des âmes
charitables !!
Je cherche dans mon DD des photos sympas :)

Et une toute mini dernière question pour finir : j'aimerais modifier
la couleur et la taille police de l'étiquette ainsi créée (blanc et
13).
Mais il faut croire que je ne suis vraiment pas doué, toutes mes
tentatives se terminent par une erreur...

Je suis vraiment désolé d'être un boulet !
Merci pour tout.

On 23 oct, 19:28, "garnote" wrote:

> Et pour enlever l'étiquette de la ligne 2 :

> Sub Etiquettes1()
> Dim Pt As Point
> Dim s As Range
> Set s = Selection
> With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> For i = 1 To .Points.Count
> .Points(i).ApplyDataLabels
> If i = 2 Then
> .Points(i).DataLabel.Text = ""
> Else
> If s(i, 4) > 110 Then
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> & " " & s(i, 3) & " " & s(i, 4)
> Else
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> End If
> End If
> Next i
> End With
> End Sub

> Serge

> "garnote" a écrit dans le message de news:

> > Bonsoir,

> > Une variante de la macro de Daniel :
> > En supposant que ton graphique se nomme "Graphique 3",
> > tu sélectionnes tes quatre colonnes et tu appelles cette macro :

> > Sub Etiquettes1()
> > Dim Pt As Point
> > Dim s As Range
> > Set s = Selection
> > With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> > For i = 1 To .Points.Count
> > .Points(i).ApplyDataLabels
> > If s(i, 4) > 110 Then
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> > & " " & s(i, 3) & " " & s(i, 4)
> > Else
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> > End If
> > Next i
> > End With
> > End Sub

> > Serge

> > a écrit dans le message de news:
> >
> > Bonjour à tous,

> > Je suis face à un problème plutôt complexe concernant les graphiques
> > d'excel (office 2007).

> > Je vais essayer d'être le plus clair possible, c'est un peu difficile
> > à expliquer.

> > - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> > - La valeur de ces secteurs est en pourcentage.

> > (jusqu'ici ça va :)

> > J'aimerais faire entrer en compte une deuxième valeur dans ce
> > graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
> > de l'indice. En gros, ca donne :

> > A 12% ind.122
> > B 16% ind. 98
> > C 18% ind. 112
> > D 19% ind. 56
> > E 23% ind. 75

> > Seules les deux premières colonnes agissent sur le graphique. Mon
> > problème est que j'aimerais faire apparaître l'indice sur le
> > graphique, à coté du pourcentage, si et seulement si il est supérieur
> > à 110.

> > Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
> > distinctes, je n'ai pas le choix.

> > J'ai mis une image en ligne pour que ca soit plus compréhensible :
> >http://kursus.free.fr/exemple.jpg

> > En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> > l'intérieur du graphique, ce qui n'est pas possible à faire en passant
> > par les options il me semble.

> > J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> > résultat.
> > J'ai conscience que c'est un travail assez complexe, donc je ne
> > vexerai pas si personne ne se penche dessus :)

> > Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> > Merci
> > grégoire



Hello,

et merci.

J'ai oublié de préciser que je souhaitais passer par une macro, je
dois avoir une centaine d'onglets à traiter régulièrement...

Ma soeur travaille pour Elite sur son temps libre.. (non je blague :(
Avatar
garnote
Salut,

La coutume MPFE veut qu'on écrive nos réponses
au-dessus des questions posées.
Ainsi nous ne sommes pas obligés de faire défiler
la page pour lire la réponse.

Comme tu as des centaines de feuilles à traiter,
il serait intéressant de faire le boulot d'un seul
coup sur toutes les feuilles.
Une telle chose serait possible sous certaines conditions.
Voici un exemple :
http://cjoint.com/?kyrfpy00EF


Serge




a écrit dans le message de news:
On 24 oct, 15:03, "garnote" wrote:
Bonjour,

Fais un clic sur une étiquette. Toutes tes étiquettes
seront alors sélectionnées.
Dans la barre d'outils "Mise en forme", choisis la
taille et la couleur que tu désires.

Bonne journée,

Serge

a écrit dans le message de news:
Excellent !!!!

Mille fois merci !! C'est génial de voir qu'il existe encore des âmes
charitables !!
Je cherche dans mon DD des photos sympas :)

Et une toute mini dernière question pour finir : j'aimerais modifier
la couleur et la taille police de l'étiquette ainsi créée (blanc et
13).
Mais il faut croire que je ne suis vraiment pas doué, toutes mes
tentatives se terminent par une erreur...

Je suis vraiment désolé d'être un boulet !
Merci pour tout.

On 23 oct, 19:28, "garnote" wrote:

> Et pour enlever l'étiquette de la ligne 2 :

> Sub Etiquettes1()
> Dim Pt As Point
> Dim s As Range
> Set s = Selection
> With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> For i = 1 To .Points.Count
> .Points(i).ApplyDataLabels
> If i = 2 Then
> .Points(i).DataLabel.Text = ""
> Else
> If s(i, 4) > 110 Then
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> & " " & s(i, 3) & " " & s(i, 4)
> Else
> .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> End If
> End If
> Next i
> End With
> End Sub

> Serge

> "garnote" a écrit dans le message de news:

> > Bonsoir,

> > Une variante de la macro de Daniel :
> > En supposant que ton graphique se nomme "Graphique 3",
> > tu sélectionnes tes quatre colonnes et tu appelles cette macro :

> > Sub Etiquettes1()
> > Dim Pt As Point
> > Dim s As Range
> > Set s = Selection
> > With ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1)
> > For i = 1 To .Points.Count
> > .Points(i).ApplyDataLabels
> > If s(i, 4) > 110 Then
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%") _
> > & " " & s(i, 3) & " " & s(i, 4)
> > Else
> > .Points(i).DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")
> > End If
> > Next i
> > End With
> > End Sub

> > Serge

> > a écrit dans le message de news:
> >
> > Bonjour à tous,

> > Je suis face à un problème plutôt complexe concernant les graphiques
> > d'excel (office 2007).

> > Je vais essayer d'être le plus clair possible, c'est un peu difficile
> > à expliquer.

> > - Soit un graphique "camembert" à 5 secteurs (A, B, C, D, E).
> > - La valeur de ces secteurs est en pourcentage.

> > (jusqu'ici ça va :)

> > J'aimerais faire entrer en compte une deuxième valeur dans ce
> > graphique, mais sans qu'elle n'ait d'effet sur le graphique. Il s'agit
> > de l'indice. En gros, ca donne :

> > A 12% ind.122
> > B 16% ind. 98
> > C 18% ind. 112
> > D 19% ind. 56
> > E 23% ind. 75

> > Seules les deux premières colonnes agissent sur le graphique. Mon
> > problème est que j'aimerais faire apparaître l'indice sur le
> > graphique, à coté du pourcentage, si et seulement si il est supérieur
> > à 110.

> > Difficulté supplémentaire : "ind." et "122" sont dans deux cellules
> > distinctes, je n'ai pas le choix.

> > J'ai mis une image en ligne pour que ca soit plus compréhensible :
> >http://kursus.free.fr/exemple.jpg

> > En guise de cerise, j'aimerais pouvoir incorporer le nom du secteur à
> > l'intérieur du graphique, ce qui n'est pas possible à faire en passant
> > par les options il me semble.

> > J'ai acheté un livre sur le Visual Basic mais je peine à arriver à ce
> > résultat.
> > J'ai conscience que c'est un travail assez complexe, donc je ne
> > vexerai pas si personne ne se penche dessus :)

> > Merci d'avance cependant à celui ou ceux qui pourront m'aider.

> > Merci
> > grégoire



Hello,

et merci.

J'ai oublié de préciser que je souhaitais passer par une macro, je
dois avoir une centaine d'onglets à traiter régulièrement...

Ma soeur travaille pour Elite sur son temps libre.. (non je blague :(
1 2