[RESOLU] MFC : distinguer les cellules vides des autres

scastell00

XLDnaute Nouveau
Bonjour,
J'ai beau chercher je ne trouve pas de réponse à mon problème, qui est plutôt simple :

J'ai une colonne dont les cellulles contiennent soit 0,1, 2, 3 ,4, soit vide.
Je voudrais appliquer une mise en forme conditionnelle qui associe, pour toutes les cellules de la colonne, une couleur de cellule pour chaque valeur (noir pour 0, rouge pour 1...), mais qui ne colorie pas les cellules vides.
Pourriez-vous m'aider en me donnant la formule à insérer dans la MFC svp ?
Merci par avance,
S
 
Dernière modification par un modérateur:

Victor21

XLDnaute Barbatruc
Re : MFC : distinguer les cellules vides des autres

Bonjour scastell00.

Il vous faut 5 mises en forme conditionnelles :
Sélectionnez la zone depuis le début jusqu'à la fin.
Formule pour la 1° :
=LaCelluleDeDébutSansDollars=0 (puis choisir la couleur)
Formule pour la 2°
=LaCelluleDeDébutSansDollars=1 (puis choisir la couleur)

Edit : Oups ! JHA (bonjour :) ) vous a déjà mâché le travail. Il a même joint le fichier que vous aviez omis :)
Re-Edit : bonjour, 00 :)
 
Dernière édition:

DoubleZero

XLDnaute Barbatruc
Re : MFC : distinguer les cellules vides des autres

Bonjour à toutes et à tous,

Bienvenue sur XLD, scastell00.

Quelle est votre version Excel ?

Merci de bien vouloir déposer un fichier exemple, sans donnée confidentielle.

A bientôt :)

P. S. : Bonjour, JHA :D, Victor21 :D
 
Dernière édition:

cathodique

XLDnaute Barbatruc
Re : MFC : distinguer les cellules vides des autres

Bonjour,

Il fallait juste utiliser l'enregistreur de macro. Voici le code généré qui fonctionne bien. Mais il y a sûrement mieux que ça.
VB:
Sub MFC()

    Columns("A:A").Select
    
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=1"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        '.PatternColorIndex = xlAutomatic
        .ThemeColor = 192
'        .TintAndShade = -4.99893185216834E-02
    End With
    
    Selection.FormatConditions(1).StopIfTrue = False
    
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=2"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
    '    .PatternColorIndex = xlAutomatic
        .Color = 65535
'        .TintAndShade = 0
    End With
    
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=3"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
     '   .PatternColorIndex = xlAutomatic
        .Color = 49407
     '   .TintAndShade = 0
    End With
    
    Selection.FormatConditions(1).StopIfTrue = False
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
        Formula1:="=4"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
      '  .PatternColorIndex = xlAutomatic
        .Color = 255
      '  .TintAndShade = 0
    End With
    
    Selection.FormatConditions(1).StopIfTrue = False
    Range("A1").Select
End Sub
J'espère que c'est le résultat souhaité.
Cordialement,

Cathodique

ReOups! C'est une macro pour mfc
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 238
Messages
2 107 620
Membres
109 880
dernier inscrit
marc Deburaux