2009-02-25 12 views
1

Dans Excel 2003, lorsque je modifie Series.Interior.ColorIndex à une valeur dont j'ai besoin, il n'a aucun effet. Cela n'a d'effet que lorsque je change d'abord manuellement la couleur, puis exécute la macro. Apparemment, cela déclenche un mécanisme de mise à jour. Est-ce que quelqu'un a une explication à ce sujet? Y a-t-il un moyen de déclencher cela dans le tableau? assurez-vous que les changements de couleur prennent effet.Modification de .Interior.ColorIndex n'a aucun effet

En outre, lorsque je parcours le code et que je regarde ColorIndex, il ne change pas même après l'affectation de la valeur. Est-ce l'un des nombreux bugs dans Excel?

Le code ressemble à ceci:

Sub DoStuff() 
    Dim j As Long 
    For j = 1 To ActiveChart.SeriesCollection.Count 
     With ActiveChart.SeriesCollection(j) 
      Select Case ActiveChart.SeriesCollection(j).Name 
       Case "Milk" 
        .Interior.ColorIndex = 4 
       Case "Cookies" 
        .Interior.ColorIndex = 28 
       Case "Honey" 
        .Interior.ColorIndex = 26 
      End Select 
     End With 
    Next j 
End Sub 

Edit: Je travaille avec graphique à barres.

+0

J'ai posté l'exemple de données Excel que j'utilisais (voir ma réponse ci-dessous). Pouvez-vous fournir quelque chose de similaire qui illustre le problème que vous voyez? –

Répondre

1

Essayez également de définir la bordure.

.Interior.ColorIndex = 4 
.Border.ColorIndex = 4 
.Border.Weight = xlMedium 
+0

Merci pour la suggestion, mais aucun effet. Seule la frontière a changé. –

+0

Résolu mon problème en changeant le style de remplissage juste avant de changer de couleur et en le remettant à l'original. Incroyable! .... –

1

Edit: En réponse aux commentaires & Les modifications apportées à la question initiale:

J'ai présenté un exemple de fichier Excel, et j'ai pu obtenir votre code de travail. Voici comment mes données sont disposées:

| A | B | C | D | 
-------------------------------- 
1 | Milk | 3 | 1 | 4 | 
2 | Cookies | 1 | 5 | 9 | 
3 | Honey | 2 | 6 | 5 | 

Et le graphique à barres ressemble à ceci:

      ._. 
          |C| 
       ._.._.  |C|._. 
._. ._.  |C||H| ._.|C||H| 
|M|._.|H| ._.|C||H| |M||C||H| 
|M||C||H| |M||C||H| |M||C||H| 
--------------------------------- 
    1   2   3 

Lorsque toutes les barres marquées « M » dans le schéma ci-dessus appartiennent au « lait "série, toutes les barres étiquetées" C "appartiennent à la série" Cookies ", et toutes les barres étiquetées" H "appartiennent à la série" Honey ". Lorsque j'exécute votre code sur ce graphique, les couleurs de la barre sont modifiées comme prévu.

Pouvez-vous me dire ce qui est différent entre ma configuration et la vôtre? Je vais essayer de le comprendre, mais j'ai besoin de plus d'informations :)

+0

C'est un graphique à barres. –

0

probablement un bogue dans Excel, quelle version d'Excel utilisez-vous? assurez-vous d'avoir réparé/réparé le service pack et réessayez de reproduire le problème.

0

J'ai eu le même problème, en utilisant Excel 2007 et 2003.

Mais je l'ai fixé en ouvrant le classeur en 2003, le formatage puis la série de données par un clic droit (etc) et sa mise en Remplissons couleur automatique . alors quand j'ai couru ma macro, la partie de réglage de colorindex prendrait place.