Mise en Forme Conditionnelle par VBA

Bonjour,

Il y a quelques jours j'ai ouvert ce sujet : https://forum.excel-pratique.com/viewtopic.php?f=2&t=128435 car j'avais besoin d'appliquer des MFC sur mon fichier via VBA afin que les mises en forme conditionnelles ne soient pas "cassées" en cas de mauvaises manipulations sur le fichier. Comme vous pouvez le constater dans le sujet, ces MFC par VBA ne concernaient qu'une partie de mon fichier, à savoir les colonnes : "délai d'expédition / butée du service limité / délai respecté".

Toutefois avec ce nouveau codage, les autres mises en forme conditionnelles qui étaient sur mon fichier, créées manuellement par l'outil "mise en forme conditionnelle" ne fonctionne plus.

Cette mise en forme était en place dans cette partie du tableau (ci-joint) :

190827011045547027

Une mise en forme était appliquée pour chaque cellule (produit ID = texte rouge foncé en gras + fond rose avec pointillés dans la cellule) contenant ce code : 414, 415, 416, 417, 418, 437, 439, 477 ou 478 ainsi qu'à la ligne à côté de ce code (Produit Libellé = texte rouge foncé en gras).

Pour appliquer ces MFC, j'avais indiqué cette formule :

=RECHERCHEV($G3;codeproduit;1;0)

"codeproduit" étant une référence de cellules contenant les codes (414, 415...) cités ci-dessus.

Du coup, malgré les codes déjà existants en VBA qui appliquent des MFC dans d'autres parties de mon fichier, est-il possible de faire de même avec ces autres MFC ?

Merci d'avance pour votre aide.

Cordialement,

Baptiste

Bonjour,

En tout début de procédure, tu as cette instruction qui supprime toutes les MFC de la feuille :

Feuil1.Cells.FormatConditions.Delete

et donc, celles mise en place manuellement sont aussi supprimées !

Mets cette instruction en commentaire (apostrophe devant la ligne) et remets en place tes MFC manuelles puis effectue des tests !

Bonjour horusbk, These , le forum,

Comme j'avais participé au précédent sujet, je me permets de m'incruster,

Il suffit de limiter l'effacement des mfc à la colonne J, non ?

With Feuil1.Range("J3:J" & Derligne)
            .FormatConditions.Delete
            .FormatConditions.Add Type:=xlExpression, Formula1:="=ET(" & Sheets("Réglages").Cells(Ligne, Colonne).Value & ")"
            .FormatConditions(.FormatConditions.Count).SetFirstPriority

            On Error Resume Next

Cordialement,

Bonjour xorsankukai, These

Merci de votre aide !

J'ai préféré essayer le plus simple, en commentant cette ligne de code :

Feuil1.Cells.FormatConditions.Delete

En remettant ma MFC manuelle celle-ci reste en place et celles appelées par VBA fonctionne toujours (contrairement à la seconde solution qui fait fonctionner les MFC de la colonne "produit ID" mais qui supprime les MFC via VBA...

Par contre, y a-t-il un moyen de remettre rapidement les MFC manuelles sur mes colonnes produits ID et produit Libellé (mon fichier ayant actuellement plus de 600 lignes ) ?

Bien cordialement,

Baptiste

EDIT: J'ai réussi à appliquer la MFC à toute une plage de cellules manuellement

Merci pour votre aide, sujet résolu

Rechercher des sujets similaires à "mise forme conditionnelle vba"