Disposition centrée du nom de chaque serie d'un diagramme

Elo7

XLDnaute Nouveau
Hello tout le monde,

Tout comme il est possible d'afficher les étiquettes de données centrées, j'aimerais pouvoir le faire avec le nom de chaque série. Je ne veux pas seulement avoir la zone avec des carrés qui représente chaque couleur de série.

J'aimerais obtenir quelque chose comme ce qui est représenté dans le diagramme du bas.

serie_donnees.jpg

Il y a t-il un moyen de le faire (Excel ou VBA)?

merci d'avance pour vos réponses.
Cordialement
 

Elo7

XLDnaute Nouveau
Re : Disposition centrée du nom de chaque serie d'un diagramme

Bonjour,:)

ci-joint le fichier excel
J'espère que je l'ai bien charger.
 

Pièces jointes

  • Mise_en_forme_diagramme.xlsx
    21.7 KB · Affichages: 14
Dernière modification par un modérateur:

Elo7

XLDnaute Nouveau
Erreur d'exécution '438': Propriété ou méthode non gérée par cet objet

Bonsoir ou Bonjour à tous,
J'ai essayé de faire une macro pour effectuer cette mise en forme, mais j'ai un problème au niveau d'une instruction.
Voici mon code

Code:
Sub Etiquettes_de_Series()
 
 
 Dim serie As Integer
 Dim indD As Integer ' indice du nom du diagramme: pour l'instant il n y a que Diagramm 1
 
serie = 1
indD = 1
'
For indD = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects("Diagramm " & indD).Activate
ActiveChart.ApplyDataLabels
 
    For serie = 1 To 10
    ActiveChart.SeriesCollection(serie).DataLabels.Select
    Selection.ShowValue = False
    Selection.ShowSeriesName = True 'Erreur d'execution '438': Propriete ou methode non geree par cet objet
    Next serie
 
Next indD
End Sub
Le problème se situe au niveau de cette instruction

Code:
Selection.ShowSeriesName = True 'Erreur d'execution '438': Propriete ou methode non geree par cet objet

Il y a comme message "'Erreur d'execution '438': Propriete ou methode non geree par cet objet".
Je ne comprends pas ce qui ne va pas.

Merci d'avance pour vos réponses

Ci joint un fichier de base
 

Pièces jointes

  • Macro_Serie_Etiquette_de_données.xlsm
    21.4 KB · Affichages: 20

Efgé

XLDnaute Barbatruc
Re : Disposition centrée du nom de chaque serie d'un diagramme

Bonjour Elo7, M12, le fil, le forum
Je me suis lancé, donc j'atterie
Je pense que ton problème viens du fait que tu commence par supprimer les values des étiquettes.
Comme l'étiquette n'affiche plus rien, Excel la supprime et tu ne peux plus lui faire afficher quoi que ce soit.
Ensuite, on peux voir un code plus "généraliste", sans connaitre ni les noms des graphs,nie leur nombre, ni le nombre de séries, etc....
Fait sous 2007, le code traite les graphhiques de l'onglet actif (ActiveSheet):
VB:
Sub Etiquettes_de_Series()
Dim Serie As Series
Dim Chrt As ChartObject
For Each Chrt In ThisWorkbook.ActiveSheet.ChartObjects
    For Each Serie In Chrt.Chart.SeriesCollection
        With Serie
            .ApplyDataLabels
            With .DataLabels
                .ShowSeriesName = True
                .ShowValue = False
            End With
        End With
    Next Serie
Next Chrt
End Sub
Cordialement
 

Elo7

XLDnaute Nouveau
Re : Disposition centrée du nom de chaque serie d'un diagramme

Bonjour Elo7, M12, le fil, le forum
Je me suis lancé, donc j'atterie
Je pense que ton problème viens du fait que tu commence par supprimer les values des étiquettes.
Comme l'étiquette n'affiche plus rien, Excel la supprime et tu ne peux plus lui faire afficher quoi que ce soit.

Bonjour,
merci pour ta réponse.
J'ai pu avoir la solution. Tu as Raison,c'est de la que vient le problème. Il fallait donc juste intervertir les deux lignes en changeant l'ordre. Là ca marche.
Et merci pour ton code.

Ensuite, on peux voir un code plus "généraliste", sans connaitre ni les noms des graphs,nie leur nombre, ni le nombre de séries, etc....
Fait sous 2007, le code traite les graphhiques de l'onglet actif (ActiveSheet):

VB:
Sub Etiquettes_de_Series()
Dim Serie As Series
Dim Chrt As ChartObject
For Each Chrt In ThisWorkbook.ActiveSheet.ChartObjects
    For Each Serie In Chrt.Chart.SeriesCollection
        With Serie
            .ApplyDataLabels
            With .DataLabels
                .ShowSeriesName = True
                .ShowValue = False
            End With
        End With
    Next Serie
Next Chrt
End Sub


Je l'ai pas encore testé, mais je le ferai sous peu. C'est génial comme on peut avoir plusieurs variantes.

Un Grand merci à vous deux M12 et Efgé :D

Cordialement
Elo7
 

Elo7

XLDnaute Nouveau
Re : Disposition centrée du nom de chaque serie d'un diagramme

Bonjour,
je l'ai enfin testé et il fonctionne très bien ton code plus "généraliste".
Seulement je n'arrive pas à ajouter ce bout de code de telle sorte qu'il fonctionne.

Code:
With Selection.Format.TextFrame2.TextRange.Font.Fill
            .Visible = msoTrue
            .ForeColor.ObjectThemeColor = msoThemeColorBackground1
            .ForeColor.TintAndShade = 0
            .ForeColor.Brightness = -0.150000006
            .Transparency = 0
            .Solid
    End With

Ce code permet de définir la couleur de la police (ici, un gris clair). Ca fonctionnait dans le code par Diagramme.
Ou dois-je l'ajouter ou plutot comment faire?

Merci d'avance.

Cordialment
Elo7
 

Discussions similaires

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens