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