2010-07-26 7 views
0

J'ai une feuille de calcul que j'utilise au travail pour suivre les contrats renvoyés. J'ai mis en place une clé de couleur afin que je puisse rapidement jeter un coup d'œil à la feuille pour voir quels contrats doivent encore nous être retournés et à quel gestionnaire de compte appartient le compte.Coloration d'une plage de cellules dans Excel à l'aide de VBA

Les initiales du gestionnaire de compte sont répertoriées dans la colonne A; à partir de là, je voudrais colorer la plage de cellules de cette rangée (A: H) en fonction des initiales entrées dans A. J'ai maintenant le code suivant en place, mais je n'aime pas la façon dont le tableur ressemble à la rangée entière colorée:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
If Target.Column <> 1 Then Exit Sub 

Select Case Target 

Case "MKH" 
Target.EntireRow.Interior.ColorIndex = 36 

Case "MAH" 
Target.EntireRow.Interior.ColorIndex = 39 

Case "MJM" 
Target.EntireRow.Interior.ColorIndex = 34 

Case "JVE" 
Target.EntireRow.Interior.ColorIndex = 35 

Case Else 
Target.EntireRow.Interior.ColorIndex = 0 

End Select 

PS La majorité des employés de notre bureau utilisent toujours Office 2003, la mise en forme conditionnelle n'est donc pas une option.

Répondre

4

Si votre question est de savoir comment colorer une partie de la ligne au lieu de l'entier, cela devrait fonctionner:

Range("A" & Target.Row, "H" & Target.Row).Interior.ColorIndex = 10 
+0

Oui, cela a fonctionné! Merci beaucoup :-) – JTone

0

En fonction du nombre de lignes que vous avez, la vitesse de votre ordinateur, la version d'Excel Les événements ralentissent généralement votre feuille de calcul et, dans une large mesure, ralentissent les autres codes VBA.

Pour ce que vous voulez faire "Mise en forme conditionnelle" est toujours une meilleure alternative.

Questions connexes