Forcer la mise à jour des formats conditionnels

mprexcel

XLDnaute Junior
Bonjour à tous,
Je vous lis souvent et j'apprécie la volonté de chacun d'essayer d'aider les autres.
Aujourd'hui, je me permets de solliciter votre aide.
J'utilise un calendrier pour mettre en évidence les jours de congé de mes collaborateurs.
A cette fin, j'utilise des formats conditionnels et des "public sub".
Je lis les jours de congés sur une feuille, les "public sub" me permettent de mettre un drapeau et les formats conditionnels modifient la couleur des cellules.
Si je modifie les jours de congé, je ne vois pas apparaître directement les changements, je dois fermer/ouvrir le fichier.
Existe-il une commande en VBA qui "force" EXCEL a repasser par les cellules pour mettre à jour les formats conditionnels?
D'avance, merci pour votre aide.

Windows 7
Excel 2010
 

Tibo

XLDnaute Barbatruc
Re : Forcer la mise à jour des formats conditionnels

Bonjour mprexcel et bienvenue sur XLD,

Peux-tu nous indiquer quelle(s) condition(s) tu as mise(s) pour ta Mise en Forme Conditionnelle.

Une MFC devrait se mettre à jour automatiquement.

Le cas échéant, met nous un petit bout de fichier exemple (anonymisé)

@+
 

mprexcel

XLDnaute Junior
Re : Forcer la mise à jour des formats conditionnels

Bonjour Tibo et merci pour ce gentil mot d'acceuil.
Je ne suis pas un spécialiste en VBA alors je vais essayer d'expliquer le plus clairement possible. D'avance, pardon si je n'utilise pas "le bon langage".
Chaque cellule comporte 4 MFC et les 2 premières MFC utilise une "public sub".
Le type de règle que j'utilise est : Utiliser une formule pour déterminer pour quelle cellule le format sera appliqué.
La règle est du type : =congecol1(LC-1)
Congecol1 est une" public sub" qui permet de connaître si la date (reprise en LC-1) est une date de congé du collaborateur 1.
Lors de la mise au point de ce classeur, j'ai fait des "reporduire la mise en forme".
Tout fonctionne bien mais c'est lent , ce que je comprends car 7 collaborateurs différentes multiplié par 4 tests de MFC multiplié par 365 jours par an, cela fait un paquet de tests.
J'espère avoir été clair.
D'avance, grand merci pour votre aide.
 

Tibo

XLDnaute Barbatruc
Re : Forcer la mise à jour des formats conditionnels

re,

Question VBA je ne vais pas savoir t'aider.

Une piste, mais sans garantie :

remplace ta formule par :

Code:
=SI(MAINTENANT()>0;congecol1(LC-1))

Petite question : comment modifie-tu tes jours de congés ?

@+
 

tototiti2008

XLDnaute Barbatruc
Re : Forcer la mise à jour des formats conditionnels

Bonjour mprexcel, Bonjour Tibo,

A priori, un format conditionnel basé sur une expression du genre

Code:
=congecol1(LC-1)

Sous-entend que congecol1 est une Public Function, pas une Public Sub (il me semble)

Si congecol1 est bien une Public Function, dans le code VBA de cette fonction tu pourrais essayer d'ajouter la ligne

Code:
Application.Volatile

Juste après la ligne

Code:
Public Function congecol1(...)

Mais c'est un peu à l'aveugle
Le mieux serait sans doute d'avoir un bout de fichier exemple, comme l'a proposé Tibo, mais comme je travaille sur 2003 je ne suis pas sûr de pouvoir aider plus avant
 

mprexcel

XLDnaute Junior
Re : Forcer la mise à jour des formats conditionnels

Merci pour ta réponse, Tibo.
Mes jours de congé sont repris dans une feuille du classeur (feuille "Congé"; surprenant ,n'est-il pas ;))
Pour faire simple, j'ai 7 public subs qui lisent les jours de congé dans la feuille, puis 7 autres qui font office de drapeaux. Comme dèjà dit, ces drapeaux me permettent de "colorier" la cellule si le jour correspondant est un jour de congé d'un collaborateur.
J'essaie ta proposition et je te tiens au courant.
@+
 

mprexcel

XLDnaute Junior
Re : Forcer la mise à jour des formats conditionnels

Bonjour Tototiti 2008 et merci pour ta réponse.
Tu as tout à fait raison, j'utilise des Public Function et pas des Public Sub (honte à moi :confused:)
Sauf erreur de ma part, Excel 2003 ne permet que 3 conditions pour les MFC alors que j'en ai 4 (on teste les samedis et les dimanches aussi).
Je teste également ta proposition et je te tiens au courant.
Encore merci.
@+
 

mprexcel

XLDnaute Junior
Re : Forcer la mise à jour des formats conditionnels

Re-bonjour à tous,
J'ai testé la proposition de tototiti2008 et cela fonctionne, la mise a jour s'effectue en cas de modification sur la feuille CONGE. :cool:
Un grand merci à tous et encore bravo à tototiti2008 pour sa proposition pertinente.
A bientôt.
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 077
Membres
103 455
dernier inscrit
saramachado