Problème d'ombrage de cellule avec MFC et fonction Jours360

citizenbaban

XLDnaute Junior
Bonjour à toutes et à tous,

J'ai un petit souci avec le fichier xls joint.
Il y a une macro (carré rose en bas de la feuille "Suivi") qui me permet de copier la dernière ligne de ce tableau dans la feuille "Lectures". J'applique ensuite par macro 3 MFC sur la feuille "Lectures". Voici l'extrait de macro pour les MFC :

Code:
    With Range("A2:F300").Select
    'Supprime les MFC existantes
    Selection.FormatConditions.Delete
    
    'Ajoute trois conditions
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=OU($E2=AUJOURDHUI();$F2=AUJOURDHUI())"
    Selection.FormatConditions(1).Interior.ColorIndex = 4  'Vert
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        "=OU(ET($E2-AUJOURDHUI()<8;$E2-AUJOURDHUI()>0);ET($F2-AUJOURDHUI()<8;$F2-AUJOURDHUI()>0))"
    Selection.FormatConditions(2).Interior.ColorIndex = 8  'Cyan
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=JOURS360($F2;$H$2)>0"
    Selection.FormatConditions(3).Interior.ColorIndex = 36  'Orange pale

    
    End With

Le problème que des cellules sans date (donc 01/01/1900 pour Excel) se colorent forcément en couleur 36 car la troisième MFC est vraie dans ces cas là.

Comment éviter ce problème et faire en sorte que les cellules vides restent blanches.

D'avance merci

Citizenbaban



Cijoint.fr - Service gratuit de dépôt de fichiers
 

Grand Chaman Excel

XLDnaute Impliqué
Re : Problème d'ombrage de cellule avec MFC et fonction Jours360

Bonjour,

une suggestion : Remplace ta 3e condition par ceci :

Code:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ET(JOURS360($F2;$H$2)>0;$F2>0)"
    Selection.FormatConditions(3).Interior.ColorIndex = 36 'Orange pale


Autre suggestion :
Débarrasse-toi de tous les .Select et .Activate de ton code. Ça ralentit énormément ton codes. La plupart ne sont pas requis.
Autre truc :
Place
Application.ScreenUpdating = False en début de code et
Application.ScreenUpdating = True en fin de code

Ça devrait aussi aider à accélérer ton code.
A+
 

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 609
dernier inscrit
AmineAB33