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
gterras
On 24 oct, 16:07, "garnote" wrote:
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: e678fbbb-ced0-44c7
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-4e
> Excellent !!!!

> Mille fois merci !! C'est génial de voir qu'il existe encore des âm es
> 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 ne ws:

> > > 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 gra phiques
> > > d'excel (office 2007).

> > > Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
> > > à 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'a git
> > > 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 cell ules
> > > 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 à arrive r à 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 :(



Ok c'est excellent ca fonctionne.

Merci pour votre aide précieuse.

Autre question : Je cherche à tronquer les chiffres affichés dans les
datalabels, à savoir pas de chiffres après la virgule.

Je tente .DataLabel.Format, mais je ne trouve pas la variable à
rajouter.

Auriez-vous une idée ?

Merci
Avatar
gterras
Merci de ton aide Serge.

Désolé de poster en bas de fil, il me semblait bien que l'inverse
était plus pratique; je poste depuis google groups et ce dernier place
le curseur en bas du fil par défaut. Je me disais qu'il y avait bien
une raison.. :)

On 24 oct, 16:07, "garnote" wrote:
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: e678fbbb-ced0-44c7
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-4e
> Excellent !!!!

> Mille fois merci !! C'est génial de voir qu'il existe encore des âm es
> 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 ne ws:

> > > 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 gra phiques
> > > d'excel (office 2007).

> > > Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
> > > à 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'a git
> > > 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 cell ules
> > > 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 à arrive r à 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
Daniel.C
Bonjour.
En fait, il n'y a pas de règle absolue. A l'origine, on répondait en
dessous des précédents posts. Certains y tiennent encore mordicus, et
sur certains forums, tu te fais interpeller si tu postes au dessus.
Pour les fils un peu longs, comme celui-ci, c'est plus simple de poster
au dessus. Le mieux est de regarder ce qui se fait sur le forum où tu
arrives. Le pire étant d'avoir des réponses à la fois au dessus et au
dessous.
Daniel

Merci de ton aide Serge.

Désolé de poster en bas de fil, il me semblait bien que l'inverse
était plus pratique; je poste depuis google groups et ce dernier place
le curseur en bas du fil par défaut. Je me disais qu'il y avait bien
une raison.. :)

On 24 oct, 16:07, "garnote" wrote:
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 :(




Avatar
Daniel.C
Dans le code de Serge, ca se situe à la ligne :

.DataLabel.Text = s(i, 1) & " " & Format(s(i, 2), "#%")

Dans cette ligne, il n'y a pas de chiffre après la virgule ("#%"). Si
tu en voulais, il faudrait mettre :
"#,00%"

Daniel

On 24 oct, 16:07, "garnote" wrote:
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 :(



Ok c'est excellent ca fonctionne.

Merci pour votre aide précieuse.

Autre question : Je cherche à tronquer les chiffres affichés dans les
datalabels, à savoir pas de chiffres après la virgule.

Je tente .DataLabel.Format, mais je ne trouve pas la variable à
rajouter.

Auriez-vous une idée ?

Merci


Avatar
gterras
Merci Serge pour cet exemple et pour le temps que tu prends pour
m'aider.

Une question, lorsque je change l'emplacement de référence dans ta
macro ([A1] que je change en [A2] par exemple) il y a un probleme.

C'est bien la cellule A1 qui sert de point de départ à la création de s
labels, ce qui veut dire
- que le premier label est créé à partir de A1 alors que les donnée s
sources commencent en A2
- que le dernier label n'est pas créé.

Je n'arrive pas à saisir ce qui se passe.

Merci


On 24 oct, 16:07, "garnote" wrote:
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: e678fbbb-ced0-44c7
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-4e
> Excellent !!!!

> Mille fois merci !! C'est génial de voir qu'il existe encore des âm es
> 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 ne ws:

> > > 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 gra phiques
> > > d'excel (office 2007).

> > > Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
> > > à 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'a git
> > > 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 cell ules
> > > 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 à arrive r à 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
gterrastemp
Bonjour Serge,

et merci pour tes réponses.

Ca fait plusieurs fois que j'essaye de poster mais mes messages
n'apparaissent pas dans la discussion, c'est bizarre.

Donc en résumé :

- Désolé de poster à la fin des fils. Je pensais bien que c'était
l'inverse, mais j'utilise Google Groups et ce dernier place le curseur
par défaut à la fin. Je me disais qu'il y avait sûrement une raison,
mais bon... Je ne lui ferais plus confiance :)

- Merci pour ton exemple, ca m'a beaucoup aidé. Mais il y a une chose
que je ne comprend pas, c'est quand je modifie le point de départ de
la macro [A1] en [B6] par exemple, le point de départ est bloqué à B5 .
Ce qui fait que les étiquettes sont décalées par rapport au secteurs
et que le dernier secteur n'a pas d'étiquettes. Bizarre.

- Dernier point, mes indices, sous la forme 116 par exemple, sont
tronqués dans la cellule qui les affiche. En fait, il sont sous la
forme 116,3598964.
J'ai essayé de rajouter .datalabel.NumberFormat = "#" mais je pense
que ca ne s'applique qu'aux données source du graphique, pas aux
indices.
Ai-je manqué quelque chose ?

Un énorme merci en tout cas.

On 24 oct, 16:07, "garnote" wrote:
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: e678fbbb-ced0-44c7
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-4e
> Excellent !!!!

> Mille fois merci !! C'est génial de voir qu'il existe encore des âm es
> 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 ne ws:

> > > 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 gra phiques
> > > d'excel (office 2007).

> > > Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
> > > à 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'a git
> > > 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 cell ules
> > > 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 à arrive r à 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
Il me faudrait voir une partie de ton classeur pour
examiner la structure de tes données.
Tu pourrais y ajouter quelques notes pour expliquer
où ça ne fait pas ton affaire.
Tu peux l'envoyer sur Cjoint.com.
http://cjoint.com/

Serge





a écrit dans le message de news:

Bonjour Serge,

et merci pour tes réponses.

Ca fait plusieurs fois que j'essaye de poster mais mes messages
n'apparaissent pas dans la discussion, c'est bizarre.

Donc en résumé :

- Désolé de poster à la fin des fils. Je pensais bien que c'était
l'inverse, mais j'utilise Google Groups et ce dernier place le curseur
par défaut à la fin. Je me disais qu'il y avait sûrement une raison,
mais bon... Je ne lui ferais plus confiance :)

- Merci pour ton exemple, ca m'a beaucoup aidé. Mais il y a une chose
que je ne comprend pas, c'est quand je modifie le point de départ de
la macro [A1] en [B6] par exemple, le point de départ est bloqué à B5.
Ce qui fait que les étiquettes sont décalées par rapport au secteurs
et que le dernier secteur n'a pas d'étiquettes. Bizarre.

- Dernier point, mes indices, sous la forme 116 par exemple, sont
tronqués dans la cellule qui les affiche. En fait, il sont sous la
forme 116,3598964.
J'ai essayé de rajouter .datalabel.NumberFormat = "#" mais je pense
que ca ne s'applique qu'aux données source du graphique, pas aux
indices.
Ai-je manqué quelque chose ?

Un énorme merci en tout cas.

On 24 oct, 16:07, "garnote" wrote:
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 :(


Avatar
gterras
Bonjour Serge,

Et merci de ta réponse.
J'ai mis un fichier d'exemple sur
http://www.cijoint.fr/cjlink.php?file=cj200810/cijvyQDFtd.xls

Je poste à l'aveugle, vu que google semble avoir un problème avec le
rafraichissement de certains groupes.

J'ai fait des annotations. Dis moi ce que tu en penses.

Merci beaucoup.

On 24 oct, 16:07, "garnote" wrote:
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: e678fbbb-ced0-44c7
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-4e
> Excellent !!!!

> Mille fois merci !! C'est génial de voir qu'il existe encore des âm es
> 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 ne ws:

> > > 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 gra phiques
> > > d'excel (office 2007).

> > > Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
> > > à 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'a git
> > > 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 cell ules
> > > 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 à arrive r à 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
gterras
Ok merci Daniel, problème de parenthèses qui me renvoyait des
erreurs.

a+

On 27 oct, 17:07, Daniel.C wrote:
Dans le code de Serge, ca se situe à la ligne :

.DataLabel.Text = s(i, 1) & "  " & Format(s(i, 2), "#%")

Dans cette ligne, il n'y a pas de chiffre après la virgule ("#%"). Si
tu en voulais, il faudrait mettre :
"#,00%"

Daniel

> On 24 oct, 16:07, "garnote" wrote:
>> 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:
>> O n 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 modifie r
>>> la couleur et la taille police de l'étiquette ainsi créée (blan c 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 n ews:
>>>>
>>>>> 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 gra phiques
>>>>> d'excel (office 2007).

>>>>> Je vais essayer d'être le plus clair possible, c'est un peu diffi cile
>>>>> à 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'a git
>>>>> 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 cell ules
>>>>> 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 à arrive r à 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 :(

> Ok c'est excellent ca fonctionne.

> Merci pour votre aide précieuse.

> Autre question : Je cherche à tronquer les chiffres affichés dans l es
> datalabels, à savoir pas de chiffres après la virgule.

> Je tente .DataLabel.Format, mais je ne trouve pas la variable à
> rajouter.

> Auriez-vous une idée ?

> Merci


Avatar
garnote
Bonjour,

1.
La macro est réglée pour agir sur le graph3

Le point de départ est [F16]

Mais on voit sur le secteur du bas "CSP",

ce qui correspond à F15




Quand tu utilises CurrentRegion pour désigner une plage,

il faut que ta plage soit entourée de cellules vides.

Alors si tu veux laisser CSP en F15, sélectionne F16:I20

avant de lancer la macro.





2.

Deuxième chose, l'indice affiché avec 10 chiffres après la virgule.

J'essaye .DataLabel.NumberFormat = "#"

mais ca ne fonctionne pas.



Remplace & s(i,4) par & Format(s(i,4),"0")





Tu pourrais alors agrandir ton fromage et utiliser cette macro :



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




Serge
1 2