Couleur segment camnbert suivant couleur des cellules

SDR42

XLDnaute Junior
Bonjour,
mon souhait est que le segment du camenbert prenne la couleur de la cellule, Les macros que j'ai glanées sur divers forums ne fonctionnant pas comme j'aimerais, de plus si je mets option explicit j'ai le message variable non défini. Etant débutant dans le vba les commentaires sur lignes de codes seraient bienvenues

Merci d'avance pour votre aide.

Cordialement
 

Pièces jointes

  • code couleur.xlsm
    20.8 KB · Affichages: 61

SDR42

XLDnaute Junior
Re : Couleur segment camnbert suivant couleur des cellules

Salut DoubleZéro
merci pour la réponse mais j'ai un message d'erreur lorsque je lance la macro
"erreur de compilation Référence incorrecte ou non qualifiée"
Est dù à mon graphique ?
Cdt
 

SDR42

XLDnaute Junior
Re : Couleur segment camnbert suivant couleur des cellules

:) Mais concernant le code
Sub Couleurs_graphique_couleurs_cellules()
Dim i As Long
ActiveSheet.ChartObjects(1).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).Interior.ColorIndex = ActiveSheet.Cells(i + 1, 1).Interior.ColorIndex
Next i
End Sub
J'aurais besoin d'aide pour le comprendre car j'ai une feuille contenant 10 graphiques et j'aimerais reproduire cette méthode sur les 10. J'ai essayé mais sans succès
 

SDR42

XLDnaute Junior

Salut à tous,
voici le fichier sur lequel j'aimerais appliquer à tous les graphs la même couleur (contenue dans les cellules)

Merci
 

Pièces jointes

  • VBA Excel Download.xlsm
    261.8 KB · Affichages: 63
  • VBA Excel Download.xlsm
    261.8 KB · Affichages: 83
  • VBA Excel Download.xlsm
    261.8 KB · Affichages: 80

Gardien de phare

XLDnaute Accro
Re : Couleur segment camnbert suivant couleur des cellules

Bonjour,

Sous réserve de renommer les graphiques pour que l'ordre de 1 à 10 correspondent à celui des tableaux sources... le code suivant devrait faire ce que tu veux.
VB:
Sub couleurs()
Application.ScreenUpdating = False
Dim i As Integer, j As Integer, k As Integer
j = 2
Feuil1.Activate
For i = 1 To 10
    ActiveSheet.ChartObjects("Graphique " & i).Activate
    With ActiveChart.SeriesCollection(1)
        For k = 1 To .Points.Count
        .Points(k).Interior.ColorIndex = ActiveSheet.Cells((k + 6), j).Interior.ColorIndex
        Next k
    End With
j = j + 10
Next i
Application.ScreenUpdating = True
End Sub

Un petit commentaire sur le fond : le camembert est rarement pertinent comme graphique, le camembert 3D jamais (d'ailleurs, les graphiques 3D sont de manière générale à éviter). Les cellules fusionnées dans les tableaux sources sont à éviter. 3D + cellules fusionnées !!!
 

SDR42

XLDnaute Junior
Re : Couleur segment camnbert suivant couleur des cellules

Bonjour Gardiende phare,

Merci pour les conseils, je vais sérieusement y penser. Je suis toujours preneur de conseils.
Concernant les zéros, je ne dois pas les prendre en compte dans mon graphe et autre point, lorsqu'il n'y à pas de couleur affecté à une cellule j'aimerais que la couleur ai cet index "Font.ColorIndex = 10"
Merci
Cdt
 

Gardien de phare

XLDnaute Accro
Re : Couleur segment camnbert suivant couleur des cellules

Re,

Attention les couleurs exprimées en index peuvent varier d'un classeur à l'autre si une autre palette de couleur que la palette standard a été définie dans Excel.
Pour ne pas prendre en compte les valeurs 0 dans les graphiques, les remplacer par =NA()

Ci-dessous le code modifié pour les cellules en sans couleurs
VB:
Sub couleurs()
Application.ScreenUpdating = False
Dim i As Integer, j As Integer, k As Integer
j = 2
Feuil1.Activate
For i = 1 To 10
    ActiveSheet.ChartObjects("Graphique " & i).Activate
    With ActiveChart.SeriesCollection(1)
        For k = 1 To .Points.Count
        If ActiveSheet.Cells((k + 6), j).Interior.ColorIndex <> xlNone Then
        .Points(k).Interior.ColorIndex = ActiveSheet.Cells((k + 6), j).Interior.ColorIndex
        Else
        .Points(k).Interior.ColorIndex = 10
        End If
        Next k
    End With
j = j + 10
Next i
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 841
Messages
2 092 708
Membres
105 514
dernier inscrit
Hébera