2008-11-06 18 views
5

Excel propose une option Formatage conditionnel ... dans le menu Format qui vous permet de modifier le style/couleur/police/tout d'une cellule en fonction de sa valeur. Mais cela ne permet que trois conditions.Couleurs d'arrière-plan de cellules multiples dans des feuilles de calcul Excel

Comment est-ce que j'obtiens l'affichage d'Excel, six couleurs différentes de cellule de fond selon la valeur de la cellule? (IE Rendre la cellule rouge si la valeur est "Rouge", et bleu si "Bleu" etc.)

Répondre

7

Vous aurez besoin d'écrire quelque chose dans VBA.

Voir un exemple ici: Get Around Excels 3 Criteria Limit in Conditional Formatting:

Private Sub Worksheet_Change(ByVal Target As Range) 

Dim icolor As Integer 

    If Not Intersect(Target, Range("A1:A10")) is Nothing Then 

     Select Case Target 

      Case 1 To 5 
       icolor = 6 
      Case 6 To 10 
       icolor = 12 
      Case 11 To 15 
       icolor = 7 
      Case 16 To 20 
       icolor = 53 
      Case 21 To 25 
       icolor = 15 
      Case 26 To 30 
       icolor = 42 
      Case Else 
       'Whatever 
     End Select 

     Target.Interior.ColorIndex = icolor 
    End If 
End Sub 
3

Excel 2007 permet plus de trois conditions. Citant this Microsoft page:

EDIT: Ah, il y a une "caractéristique" dans le code de liaison: les parenthèses dans un lien cité entre parenthèses ne sont pas traitées correctement. Ce lien est: http://msdn.microsoft.com/en-us/library/bb286672(office.11).aspx

Autres avantages des modifications à mise en forme conditionnelle dans Excel 2007 sont la possibilité de spécifier plus de trois conditions, pour réordonner conditions, et d'avoir plus d'un état détermination à Vrai.

Sinon. vous êtes coincé avec des alternatives désordonnées comme décrit, j'ai peur.

1

mettez ceci dans un module dans votre projet VBA. Vous pouvez ensuite mettre en surbrillance une plage dans une feuille et exécuter le sous-élément à partir de l'élément de menu Outils> Macro> Macros pour colorier chaque cellule de la plage sélectionnée.

Public Sub ColorCells() 

Dim cell, rng As Range 
Dim color As Integer 
Dim sheet As Worksheet 

Application.ScreenUpdating = False 
Application.StatusBar = "Coloring Cells" 

    Set rng = Application.Selection 
    Set sheet = Application.ActiveSheet 

For Each cell In rng.cells 

     Select Case Trim(LCase(cell)) 

      Case "blue" 

       color = 5 

      Case "red" 

       color = 3 

      Case "yellow" 

       color = 6 

      Case "green" 

       color = 4 

      Case "purple" 

       color = 7 

      Case "orange" 

       color = 46 

      Case Else 

       color = 0 
     End Select 

    sheet.Range(cell.Address).Interior.ColorIndex = color 

Next cell 

Application.ScreenUpdating = True 
Application.StatusBar = "Ready" 

End Sub 

Si les utilisateurs entrent de nouveaux noms de couleur dans les cellules alors vous pouvez mettre cela dans le code de la feuille dans le projet VBA pour colorer les cellules en tant que utilisateur entre dans les noms de couleurs dans les cellules

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.cells.Count > 1 Then Exit Sub 

Dim color As Integer 

     Select Case Trim(LCase(Target)) 

      Case "blue" 

       color = 5 

      Case "red" 

       color = 3 

      Case "yellow" 

       color = 6 

      Case "green" 

       color = 4 

      Case "purple" 

       color = 7 

      Case "orange" 

       color = 46 

      Case Else 

       color = 0 

     End Select 

Target.Interior.ColorIndex = color 

End Sub 

EDIT: Ajout de la fonction Trim autour de l'expression de l'instruction case à tester, afin que les espaces de début et de fin accidentels dans les cellules soient ignorés :)