Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Couleur segment camnbert suivant couleur des cellules

  • Initiateur de la discussion Initiateur de la discussion SDR42
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

SDR42

Guest
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

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
 
Re : Couleur segment camnbert suivant couleur des cellules

Toujours moi, je viens de tester la macro que tu m'as envoyer et là j'ai le message
"argument ou appel de procédure incorrect"
 
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
 
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 !!!
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Y
Réponses
11
Affichages
3 K
Y
P
Réponses
7
Affichages
1 K
philippe_chalon01
P
S
Réponses
9
Affichages
2 K
supervico
S
A
Réponses
2
Affichages
2 K
adrenaline65
A
H
Réponses
5
Affichages
2 K
francois22
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…