Graphique secteur : rajouter infos aux données selon conditions

Le
gterras
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #17623531
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


gterras
Le #17624091
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
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


Daniel.C
Le #17624431
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
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






garnote
Le #17624421
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



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
garnote
Le #17624401
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"
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



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



gterras
Le #17631211
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"
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"
> 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

> > 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


garnote
Le #17631411
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



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"
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"
> 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

> > 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


gterras
Le #17631581
On 24 oct, 15:03, "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

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"
> 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"
> > 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

> > > > 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 :(
garnote
Le #17631891
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


On 24 oct, 15:03, "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

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"
> 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"
> > 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

> > > >
> > 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 :(
garnote
Le #17632491
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




On 24 oct, 15:03, "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

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"
> 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"
> > 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

> > > >
> > 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 :(
Publicité
Poster une réponse
Anonyme