Bonjour,

je me permets de vous demander de l'aide sur une macro vba qui a pour objectif de réaliser une mise en forme conditionnelle en fonction des critères affichés dans les cellules d'une colonne.

Ainsi si la valeur de la cellule est 1 alors la cellule est rouge et le texte aussi
Si la valeur est 0 alors la cellule est blanche et le texte blanc.

Je souhaite faire une macro car je réalise ce tableau de bord sur excel 2007 et lorsque mes collègues l'ouvre sur 2003 la mise en forme conditionnelle saute?!?.

j'ai donc trouver le code suivant qui fonctionne mais ....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Plage As Range, c As Range
Dim Klr As Integer
Dim Fnt As Byte
 
If InStr("Fusion NPC", Sh.Name) > 0 Then   'adapter le nom des feuilles concernées
    Set Plage = Intersect(Target, Range("F3:F20000"))         'Range("F3:F20000") à adapter
    If Not Plage Is Nothing Then
        For Each c In Plage
            Select Case c.Value
                Case "1": Klr = 3: Fnt = 3
                Case "0": Klr = 2: Fnt = 2
 
                '....
                Case Else: Klr = xlNone: Fnt = 0
            End Select
            c.Interior.ColorIndex = Klr
            c.Font.ColorIndex = Fnt
        Next c
    End If
    Set Plage = Nothing
End If
End Sub
Le problème est que mes valeurs qui s'affiche dans mes celulles (1 ou 0) sont issues d'un calcul et que la macro ne fonctionne pas sauf si je tape directement la valeur (1 ou 0) dans la celllule ?????

Par avance merci pour votre aide

Cordialement