Format cellule en fonction de plusieurs conditions

Bonsoir,

j'aurais besoin d'un peu d'expertise (sur Excel 2010).

Je travaille sur un fichier où chacune des cellules, à la base "vides", est soit colorée "blanche", soit colorée "grise".

Chacune de ces cellules va recevoir un chiffre : 0 ou 2 ou 4 ou 5.

Je souhaiterais que le chiffre reçu puisse prendre une couleur bien particulière, selon la combinaison (couleur de cellule/chiffre) :

  • si cellule blanche... 0 rouge, 2 rouge, 4 noir, 5 bleu
  • si cellule grise... 0 noir, 2 bleu, 4 bleu, 5 bleu
Je compte sur vos retours ne serait ce que pour savoir s'il existe une solution.

En vous remerciant par avance.

Bonsoir,

Merci de joindre un fichier modelisé sur ta demande. Car couleur grise il y en a plusieurs comme les autres couleurs. Il faut qu'on sache lesquelles.

14exemple.xlsx (14.05 Ko)

Merci de ce retour. Ci joint fichier avec aperçu des cellules.

Re,

Essaye le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("A1:P15"), Target) Is Nothing Then
        If Target.Interior.ThemeColor = xlThemeColorDark1 Then
            Select Case Target
                Case 0: Target.Font.ColorIndex = 1
                Case 2, 4, 5: Target.Font.ColorIndex = 5
            End Select
        Else
            Select Case Target
                Case 0, 2: Target.Font.ColorIndex = 3
                Case 4: Target.Font.ColorIndex = 0
                Case 5: Target.Font.ColorIndex = 5
            End Select
        End If
    End If
End Sub

Merci Raja.

Je ne suis pas assez compétent pour comprendre ce que veut dire "Essaye le code suivant".

Je suppose que je sélectionne et copie... mais après, je ne sais que faire ?

Re,

Click droit sur l'onglet concerné et choisir l'option "Voir Code" qui ouvre le "Visual Basic Editor".

Copie le code et colle sur la partie droite vide. Le fichier est prêt à tester le programme.

Explication :

Ce programme agit sur l'onglet concerné et quand la plage A1:P15 est modifiée selon ta demande.

Raja,

je viens de procéder à la manœuvre et j'ai une fenêtre qui m'indique :

Microsoft Visual Basic pour Applications

Erreur de compilation:

Erreur de syntaxe

Re,

Je ne sais pas ce qui se passe dans ton applicatiion. Voir PJ.

Raja,

je peux effectivement constater que cela fonctionne parfaitement dans le fichier "Exemple".

Je ne parviens pas à ajuster dans mon fichier et VBA.

J'ai comparé les écrits sous VBA...

Peut être que je ne sais pas récupérer la bonne plage : "If Not Intersect(Range("A1:P15"), Target) Is Nothing Then"

Suis désolé.

Re,

Quelle est la plage du fichier d’origine sur laquelle le programme doit fonctionner ? Dans le fichier mis à disposition c'est A1:P15. Il suffit de le modifier dans la ligne.

Accessoirement, je te conseille de faire un tour sur le site pour apprendre la programmation VBA Excel. Il y a des cours gratuits diponibles.

Modifications faites plusieurs fois. Rien à faire.

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Range("D5:AM20"), Target) Is Nothing Then

If Target.Interior.ThemeColor = xlThemeColorDark1 Then

Select Case Target

Case 0: Target.Font.ColorIndex = 1

Case 2, 4, 5: Target.Font.ColorIndex = 5

End Select

Else

Select Case Target

Case 0, 2: Target.Font.ColorIndex = 3

Case 4: Target.Font.ColorIndex = 0

Case 5: Target.Font.ColorIndex = 5

End Select

End If

End If

End Sub

Raja a écrit :

Re,

Quelle est la plage du fichier d’origine sur laquelle le programme doit fonctionner ? Dans le fichier mis à disposition c'est A1:P15. Il suffit de le modifier dans la ligne.

Accessoirement, je te conseille de faire un tour sur le site pour apprendre la programmation VBA Excel. Il y a des cours gratuits diponibles.

Je persévère... Je viens de trouver ce qui clochait.

Merci Raja pour la patience, les explications et les conseils.

Rechercher des sujets similaires à "format fonction conditions"