Problématique
La mise au point des règles de Mise En Forme Conditionnelle (MFC) peut s'avérer fastidieuse, particulièrement si on a dû effectuer des modifications après avoir déjà mis au point une partie des règles MFC.
Les modifications de présentation d'une feuille, les actions sur les cellules, plages, lignes ou colonnes (Insertion, Copier-Coller...) peuvent si l'on n'est pas vigilant, aboutir à un vrai bazar dans les règles MFC, multiplication inutile des règles, voire des incohérences.
La minuscule fenêtre "Gestionnaire des règles de Mise en Forme Conditionnelle" ne permet de visualiser que 4 règles à la fois, ce qui rend délicat la mise au point, la détection et la correction des erreurs.
Le fichier à télécharger met à disposition un ensemble de macros pour y remédier en partie.
- Un groupe de macros pour harmoniser, simplifier, corriger les règles MFC. Leurs actions portent sur les plages d'application des règles.
- Une macro qui liste l'ensemble des règles MFC (d'une plage) avec leurs propriétés sous forme de tableau. La vérification des règles MFC en est grandement facilitée.
- Une macro qui Modifie les propriétés Plage d’application, Formule 1 et 2 des règles MFC (d'une plage) à partir des modifications apportées directement sur le tableau produit par la macro précédente.
La feuille MFC Test
Elle permet de tester le 1er groupe de macros.
Elle présente 5 versions d'un même Tableau avec pour chacun, son jeu de règles MFC.
Le 1er tableau correspond au Modèle attendu. Dans les 4 suivants, des adaptations sont nécessaires pour être conforme au Modèle.
4 boutons Harmoniser ..., Retirer..., Intégrer... et Remplacer... permettent d’activer la macro la plus adaptée à chaque tableau à corriger.
Pour chaque macro, la détermination des plages est faite de manière interactive par l'intermédiaire d'une boite de dialogue où l'on définit la plage (contigüe ou non) soit à l'aide de la souris, soit en tapant son adresse.
Le bouton Réinitialiser les Règles MFC ... permet après les tests, de remettre les règles MFC des différents tableaux à leur état initial (par copie de la Mise en Forme depuis la feuille MFC Réinit).
Le bouton Lister les Règles MFC ... active la macro qui liste les règles MFC dans la feuille Liste des MFC
La feuille Liste des MFC
Elle présente, pour une plage sélectionnée, l'ensemble des règles MFC sous la forme d'un tableau.
Chaque ligne du tableau correspond à une règle MFC avec toutes ses propriétés (Type de règle, Plage de validité, Ordre, Formule ...).
Pour une meilleure lisibilité, Les Mises en Forme concernant la Police, le Remplissage et les Bordures sont également reproduites dans le tableau :
Par exemple pour une MFC Police Gras Rouge, les cellules du tableau correspondant aux propriétés de la Police seront avec une Police Gras Rouge. Le même principe est appliqué même pour le Remplissage (Uni, avec Dégradé ou Motif) et les Bordures.
L'affichage de la liste est déclenché par la macro ListerMFC (bouton Lister les Règles MFC ...)
La modification des propriétés Plages d’application, Formules 1 et 2 des Règles MFC peut être effectuée directement depuis la liste comme suit :
La feuille Types de Règles
Elle présente un éventail assez large d’exemples de règles MFC (à utiliser par exemple pour Lister les MFC et tester la macro ModifierMFCDepuisListe)
La feuille Remarques
Rappels et remarques diverses
Les Éléments du Code VBA
Le module Module1_HarmoniserMFC
Il est constitué de
- 4 groupes de 3 macros, avec pour chaque groupe :
- D’un ensemble de macros pour modifier les propriétés Plages d’application, Formules 1 et 2 des Règles MFC directement depuis la liste des règles MFC.
Le module Module2_Macros_Plages
Il est constitué d'un ensemble de macros de manipulation de Plages de cellules
C'est une copie du module Module_RangeFunctions extrait sur ce site depuis Téléchargements -> Leçons et Tutoriaux -> VBA - Fonctions faciles de manipulation de Ranges V7
Les macros du module Module1_HarmoniserMFC font appel à ces macros
Mise en œuvre
Dans votre fichier Excel,
La mise au point des règles de Mise En Forme Conditionnelle (MFC) peut s'avérer fastidieuse, particulièrement si on a dû effectuer des modifications après avoir déjà mis au point une partie des règles MFC.
Les modifications de présentation d'une feuille, les actions sur les cellules, plages, lignes ou colonnes (Insertion, Copier-Coller...) peuvent si l'on n'est pas vigilant, aboutir à un vrai bazar dans les règles MFC, multiplication inutile des règles, voire des incohérences.
La minuscule fenêtre "Gestionnaire des règles de Mise en Forme Conditionnelle" ne permet de visualiser que 4 règles à la fois, ce qui rend délicat la mise au point, la détection et la correction des erreurs.
Le fichier à télécharger met à disposition un ensemble de macros pour y remédier en partie.
- Un groupe de macros pour harmoniser, simplifier, corriger les règles MFC. Leurs actions portent sur les plages d'application des règles.
- Une macro qui liste l'ensemble des règles MFC (d'une plage) avec leurs propriétés sous forme de tableau. La vérification des règles MFC en est grandement facilitée.
- Une macro qui Modifie les propriétés Plage d’application, Formule 1 et 2 des règles MFC (d'une plage) à partir des modifications apportées directement sur le tableau produit par la macro précédente.
La feuille MFC Test
Elle permet de tester le 1er groupe de macros.
Elle présente 5 versions d'un même Tableau avec pour chacun, son jeu de règles MFC.
Le 1er tableau correspond au Modèle attendu. Dans les 4 suivants, des adaptations sont nécessaires pour être conforme au Modèle.
4 boutons Harmoniser ..., Retirer..., Intégrer... et Remplacer... permettent d’activer la macro la plus adaptée à chaque tableau à corriger.
Pour chaque macro, la détermination des plages est faite de manière interactive par l'intermédiaire d'une boite de dialogue où l'on définit la plage (contigüe ou non) soit à l'aide de la souris, soit en tapant son adresse.
Le bouton Réinitialiser les Règles MFC ... permet après les tests, de remettre les règles MFC des différents tableaux à leur état initial (par copie de la Mise en Forme depuis la feuille MFC Réinit).
Le bouton Lister les Règles MFC ... active la macro qui liste les règles MFC dans la feuille Liste des MFC
La feuille Liste des MFC
Elle présente, pour une plage sélectionnée, l'ensemble des règles MFC sous la forme d'un tableau.
Chaque ligne du tableau correspond à une règle MFC avec toutes ses propriétés (Type de règle, Plage de validité, Ordre, Formule ...).
Pour une meilleure lisibilité, Les Mises en Forme concernant la Police, le Remplissage et les Bordures sont également reproduites dans le tableau :
Par exemple pour une MFC Police Gras Rouge, les cellules du tableau correspondant aux propriétés de la Police seront avec une Police Gras Rouge. Le même principe est appliqué même pour le Remplissage (Uni, avec Dégradé ou Motif) et les Bordures.
L'affichage de la liste est déclenché par la macro ListerMFC (bouton Lister les Règles MFC ...)
La modification des propriétés Plages d’application, Formules 1 et 2 des Règles MFC peut être effectuée directement depuis la liste comme suit :
- Etape 1
Lister les MFC de la plage dont les règles doivent être modifiées (bouton Lister les Règles MFC ...)
- Etape 2
Pour chaque règle (ligne de la liste) dont la Plage d’application OU (Exclusif) Formule 1 et 2 doit être changée, modifier directement la valeur de la propriété dans la ligne du tableau.
On peut, par exemple par un simple Rechercher - Remplacer, corriger en quelques clics une adresse de plage d'application erronée, une adresse de formule ... pour un ensemble de règles, ce qui aurait été fastidieux par la fenêtre "Gestionnaire des règles de Mise en Forme Conditionnelle".
La feuille est protégée à l’exception des colonnes Plages d’application, Formules 1 et 2.
Les valeurs modifiées passent en Police de caractères Gras Rouge
- Etape 3
Valider les modifications (bouton Modifier Plage et Formules à partir de la Liste ...). Voir les commentaires dans le code VBA de la macro ModifierMFCDepuisListe.
Pour chaque modification confirmée, les valeurs modifiées passent en Police de caractères Gras Vert
La feuille Types de Règles
Elle présente un éventail assez large d’exemples de règles MFC (à utiliser par exemple pour Lister les MFC et tester la macro ModifierMFCDepuisListe)
La feuille Remarques
Rappels et remarques diverses
Les Éléments du Code VBA
Le module Module1_HarmoniserMFC
Il est constitué de
- 4 groupes de 3 macros, avec pour chaque groupe :
- la macro principale avec en paramètre la (ou les) plage(s) utilisées par la macro.
- IntegrerPlageDansMereMFC
- RetirerPlageMFC
- HarmoniserPlageMFC
- RemplacerPlageMFC
- la macro de définition de la (ou des) plage(s) utilisées par la macro.
- PlagesPourIntegrerPlageDansMereMFC
- PlagesPourRetirerPlageMFC
- PlagePourHarmoniserPlageMFC
- PlagePourRemplacerPlageMFC
- La macro exécutée sur l'activation du bouton associé à la macro
- IntegrerPlageDansMereMFC_Interactif
- RetirerPlageMFC_Interactif
- HarmoniserPlageMFC_Interactif
- RemplacerPlageMFC_Interactif
- D’un ensemble de macros pour modifier les propriétés Plages d’application, Formules 1 et 2 des Règles MFC directement depuis la liste des règles MFC.
Le module Module2_Macros_Plages
Il est constitué d'un ensemble de macros de manipulation de Plages de cellules
C'est une copie du module Module_RangeFunctions extrait sur ce site depuis Téléchargements -> Leçons et Tutoriaux -> VBA - Fonctions faciles de manipulation de Ranges V7
Les macros du module Module1_HarmoniserMFC font appel à ces macros
Mise en œuvre
Dans votre fichier Excel,
- Copier la feuille Liste des MFC. (comme indiqué précédemment, les autres feuilles permettent de se faire la main mais ne sont pas nécessaires)
- Copier les 2 modules dans le projet VBA.
- Dans le code VBA du module Module1_HarmoniserMFC , pour les actions d’Harmonisation de Règles MFC, d'Intégration, de Retrait ou de Remplacement de Plages :
- Soit appeler directement les macros IntegrerPlageDansMereMFC, RetirerPlageMFC, HarmoniserPlageMFC ou RemplacerPlageMFC si les plages utilisées sont déjà déterminées au moment de l'appel
- Soit appeler les macros IntegrerPlageDansMereMFC_Interactif, RetirerPlageMFC_Interactif, HarmoniserPlageMFC_Interactif ou RemplacerPlageMFC_Interactif si les plages sont à sélectionner au moment de l'appel.
- - V1 : Version Initiale
- - V2 : Version n° 2
- Nouvelle fonctionnalité : Remplacer la Plage des règles MFC associées à cette Plage par une autre Plage
- Nouvelle fonctionnalité : Modifier les propriétés Plages d’application, Formules 1 et 2 des Règles MFC à partir de la Liste des Règles MFC
- Ajout de la feuille Types de Règles
- Feuille MFC Test : Adaptations pour les nouvelles fonctionnalités
- Feuille Liste des MFC : Adaptations pour les nouvelles fonctionnalités
- Feuille MFC Réinit : Adaptations pour les nouvelles fonctionnalités
- Feuille Remarque : Modifications mineures
- Module Module1_HarmoniserMFC : Adaptations pour les nouvelles fonctionnalités
- Module Module3_ListerMFC : supprimé (Code VBA intégré dans Module1_HarmoniserMFC)
- Auteur
- crocrocro
- Version
- V2