Code Coleur selon la valeur de la cellule

Bonjour à la communauté Excel-Practicien,

Je suis confronté à un soucis dont je n'arrive pas à résoudre.

J'ai une feuille de données. Sur cette feuille il existe une colonne avec une condition qui dit : Si la donnée de ma cellule correspond à ce que je veux, affiche moi "OK" en vert sinon "WARNING" en rouge.

En Somme mon code marche mais par contre, je suis obligé de relancer la macro à chaque changement de données car les couleurs de mon "OK" et "WARNING" ne s'actualisent pas.

Ma question est, comment puis je modifier mon code pour que ma macro soit en boucle en permanence et toujours m'afficher la bonne couleur de "OK" et WARNING" sachant qu'elle s'applique à plusieurs feuilles ?

End Sub

Sub Codecouleur()
Dim PLAGE As Range, cel As Range, derlg As Long
With ActiveSheet
   derlg = .Range("E" & .Rows.Count).End(xlUp).Row
   Set PLAGE = .Range("E8:AF" & derlg)
   For Each cel In PLAGE
      If cel = "OK" Then
         cel.Font.ColorIndex = 10
      ElseIf cel = "WARNING" Then
      cel.Font.ColorIndex = 3
      End If
   Next cel
End With
End Sub

Bonjour abakisi, le forum,

Code à placer dans Thisworkbook :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'Désactive l'évènement
    Application.EnableEvents = False
   Dim PLAGE As Range, cel As Range, derlg As Long
With ActiveSheet     ' à adapter : si tu veux uniquement la feuil1 : With Sheets("Feuil1")
   derlg = .Range("E" & .Rows.Count).End(xlUp).Row
   Set PLAGE = .Range("E8:AF" & derlg)
   For Each cel In PLAGE
      If cel = "OK" Then
         cel.Font.ColorIndex = 10
      ElseIf cel = "WARNING" Then
      cel.Font.ColorIndex = 3
      End If
   Next cel
End With
    Application.EnableEvents = True
End Sub

Cordialement,

Hello,

Pas besoin d'une macro, il y'a la mise en forme qui va bien, il y'a un exemple ici :

https://www.excel-pratique.com/fr/telechargements/doc-excel/jeux-d-icones-no184.php

Sinon si tu veux afficher un texte ou des des icones plus personnalisé, il suffit de formater les cellules de la colonne avec une police Webding, tu choisit le caractère et avec une formule SI, le caractère ou le texte se met à jour en auto et suivant le résultat la mise en forme formate la cellule.

4classeur1.xlsx (8.70 Ko)

Merci à vous xorsankukai et waard.

La solution de xorsankukai correspond plus à ce dont je recherche.

J’évite d'utiliser la mise en forme au maximum.

Rapide et efficace, c'est agréable de se sentir entouré des experts Excel .

Je considère que ce post est résolu.

Merci.

Cordialement,

AB.

xorsankukai a écrit :

Bonjour abakisi, le forum,

Code à placer dans Thisworkbook :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'Désactive l'évènement
    Application.EnableEvents = False
   Dim PLAGE As Range, cel As Range, derlg As Long
With ActiveSheet     ' à adapter : si tu veux uniquement la feuil1 : With Sheets("Feuil1")
   derlg = .Range("E" & .Rows.Count).End(xlUp).Row
   Set PLAGE = .Range("E8:AF" & derlg)
   For Each cel In PLAGE
      If cel = "OK" Then
         cel.Font.ColorIndex = 10
      ElseIf cel = "WARNING" Then
      cel.Font.ColorIndex = 3
      End If
   Next cel
End With
    Application.EnableEvents = True
End Sub

Cordialement,

Rebonjour xorsankukai,

J'ai essayé ton code en le mettant dans ThiWorkbook ça ne fonctionne pas.

Je pensai peut-être mettre mon instruction dans une boucle Do While en laissant le code dans "Modules".

Mais le problème ce que je n'arrive pas à l'adapter dans une boucle Do While. Pense tu pouvoir m'aider ?

Re,

J'ai essayé ton code en le mettant dans ThiWorkbook ça ne fonctionne pas

Teste le fichier ci-joint....il fonctionne chez moi par contre, il faut tout écrire en majuscule, comme dans ton code.

8test-abakisi.xlsm (17.09 Ko)
Rechercher des sujets similaires à "code coleur valeur"