Changer couleur ecriture si valeur cellule est zero

Bonjour!

J'ai une colonne D avec comme valeurs dans les cellules soit un zéro (0) soit autre chose.

Je cherche une macro qui colore l'écriture en blanc si la valeur de la cellule est zéro, et sinon, ça reste noir.

La colonne commence à la cellule D3 (incluse)

La macro suivante bloque, je ne sais pas pourquoi...

Sub COLOR()

If Range("D3:D10000") = 0 Then

Range("D3:D10000").Font.COLOR = vbRed

Else

Range("D3:D10000").Font.COLOR = vbBlack

End If

End Sub

Merci pour votre aide!

Bonjour,

pourquoi vba et pas une mise en forme conditionnelle?

Sub COLOR()
    For Each r In Range("D3:D10000")
        If r = 0 Then
            r.Font.COLOR = vbRed
        Else
            r.Font.COLOR = vbBlack
        End If
    Next r
End Sub

Bonjour,

tu écris "en blanc" mais ta macro dit vbRed

une solution plus simple est de désactiver l'option avancée "Afficher un zéro ...."

ou bien une MFC hors macro

edit : bonjour H2So4

capture d ecran 352

Bonjour à tous,

Pas besoin de passer par une mfc, on peut directement y mettre dans le format de cellule:

#;-#;

Un format de cellule de type nombre se lit:

nombre positif; nombre négatif; nombre nul

Il suffit de ne rien mettre pour nombre nul et on est bon, ça ne te fera ça que pour les cellules auxquelles tu donnes ton format personnalisé.

Voici un fichier exemple sur lequel j'ai appliqué ce format:

90mise-en-forme.xlsx (11.71 Ko)

EDIT: au passage utilises vbwhite pour mettre en blanc, pas vbRed

Bonjour,

Pour finir je vais ajouter que Excel a prévu le non affichage de la valeur zéro dans les options avancées.

paramétrable feuille par feuille.

oops c'est la solution de steelson …. faut que je change de lunettes moi

Tu veux dire comme l'a montré Steelson?

Tu veux dire comme l'a montré Steelson?

Oui je viens de voir… mes lunettes sont mal réglée j'ai cru à des copies écran de la mise en forme conditionnelle

Si tes prochaines lunettes ne sont pas mieux, change d'opticien

ah ben oui, j'avais même mis une copie d'écran ...

On peut supprimer mes post pour que j'ai l'air moins bête

Ach, c'est de l'encre indélébile ... ce n'est pas signe de bêtise du tout, cela m'arrive de répondre (intelligemment car ta réponse était pertinente) en ayant lu en travers les posts précédents.

Merci à tous pour vos remarques.

Mais j'ai oublié de préciser qu'il faut absolument qu'il y ait quelque chose d'inscrit dans cette cellule.

S'il n'y a rien. la valeur de défaut doit être zéro.

Mais je ne veux pas que le zéro soit visible donc je veux qu'il soit blanc (sur fond blanc donc invisible).

C'est pourquoi je cherche à faire une macro qui change la couleur de l'écriture en blanc seulement si la veleur de la cellule est zéro (le rouge était juste pour l'exemple).

Bonjour,

Je pense qu'on avait tous compris ça, c'est pour ça qu'on ne touche qu'a l'affichage, et non au contenu de ta cellule, quand on touche par exemple au format de ta cellule, 0 peut être affiché par 00/01/1900 par exemple, l'affichage te donne une date, mais la valeur est toujours 0, si tu te remets en format standard, tu auras 0, quand on fait une mise en forme conditionnelle, seul l'affichage change, quand tu mets #;-#; pour ne pas afficher les valeurs égales à 0, tu as quand même 0 dans ta cellule.

Si tu fais le test, tu peux mettre deux cellules avec le format personnalisé que je propose : #;-#;

puis tu mets un NBVAL en face de chaque cellule, dans l'une tu ne mets rien, dans l'autre tu mets 0, tu verras alors que les deux cellules sont visibles comme vides, mais Excel considérera celle où tu as mis 0 comme contenant une valeur (tu auras 1 en face).

Je te passe l'exemple pour que tu puisses voir:

Bonjour ericw, le forum,

22exo-ericw.xlsx (8.89 Ko)

dhany

j'ai compris! merci beaucoup à toutes et à tous pour tous vos messages!!

merci pour ton retour ! pour passer le sujet en résolu, clique sur près de (coin haut droit du post); ça permet aussi de clôturer le fil de la discussion (toi seul peut le faire, car c'est toi qui a créé ce sujet).

dhany

Mais je ne veux pas que le zéro soit visible donc je veux qu'il soit blanc (sur fond blanc donc invisible).

C'est donc bien ce que tout le monde t'a proposé en différentes versions ... tu n'as que l'embarras du choix !

Mais je ne veux pas que le zéro soit visible donc je veux qu'il soit blanc (sur fond blanc donc invisible).

C'est donc bien ce que tout le monde t'a proposé en différentes versions ... tu n'as que l'embarras du choix !

Même la réponse de Steelson citée une deuxième fois par un certain xmenquelquechose

Rechercher des sujets similaires à "changer couleur ecriture valeur zero"