Page 1 sur 1

Ralentissement Clignotement Formatage Conditionnel

Publié : 07 mai 2016 16:38
par zeguedon
A l'attention de ceux qui effectuent une recherche sur les "effets secondaires" du formatage conditionnel, ainsi qu'aux intervenants actifs du forum afin qu'ils puissent diriger vers ce sujet une requête sur cette problématique.

Vous constatez que le formatage conditionnel a tendance à ralentir fortement le fonctionnement d'un fichier, jusqu'à le rendre inutilisable lorsque les plages concernées sont volumineuses et/ou nombreuses.
Lorsque la fonction STYLE() est sollicitée par le formatage conditionnel, un clignotement du curseur d'écriture survient dans les cellules à modifier.

Inutile de jeter votre ordinateur ou mettre AOO/LO de coté pour autant ! La solution consiste à rendre optionnel le formatage conditionnel. D'ailleurs, d'un point de vue personnel, ce principe devrait-être appliqué systématiquement et faire partie de la bonne pratique à mettre en œuvre pour soulager l'utilisation de la Ram et du CPU (utilisation à l'origine du ralentissement).
Il faut comprendre que lorsque le formatage conditionnel est en place, la moindre modification d'une cellule entraîne la vérification de toutes les conditions de formatage sur l'ensemble des cellules concernées, et le cas échéant, une modification de leur apparence ou l'application d'un nouveau style si la fonction STYLE() est utilisée par le formatage conditionnel.

Remède ne nécessitant pas l'utilisation de macro commande :

Utiliser un interrupteur à bascule et évaluer en amont dans vos conditions de formatage la valeur référentielle retournée par l’interrupteur, suffira à désactiver/réactiver le formatage conditionnel lorsque la modification du/des tableau(x) sera terminée. Fini les ralentissements, et plus aucun clignotement ne viendra perturber votre attention.

L'interrupteur à bascule peut se concrétiser de trois façons.
  • 1)Un menu déroulant dans une cellule (Activé/Désactivé)
    2)Utilisation de boutons radio (Activé/Désactivé), plus long à mettre en place.
    3)Une case à cocher, qui lorsque qu'elle est cochée, implique que le formatage soit vérifié.
La mise en œuvre de liste déroulante, bouton radio et case à cocher est déjà traitée dans d'autres documents, je ne détaille donc pas ici comment faire.

Dans le fichier joint un exemple à partir d'une liste déroulante (acitivé/désactivé) en A1.
Les deux premières colonnes sont concernées par l'utilisation de la fonction STYLE(). Cela permet de conserver la coloration des cellules après demande de désactivation du formatage conditionnel mais aussi de dépasser la limite de trois conditions dans AOO.
Les deux suivantes ne sont pas concernées par la fonction STYLE() ; le formatage conditionnel n'est donc visible que lorsque l’interrupteur est activé.

Re: Ralentissement Clignotement Formatage Conditionnel

Publié : 09 mai 2016 22:12
par OOotremer971
Bonjour à tous :)

En complément, j'ajouterais qu'il est des cas où l'utilisation du formatage conditionnel s'impose pendant la saisie (détection de doublons au moment de la saisie par exemple), et donc cette solution s'avère alors inefficace pour ce qui concerne le ralentissement.
J'ai ajouté au fichier une nouvelle feuille (copie de la précédente), dans laquelle chaque colonne est une zone distincte, activable ou désactivable indépendamment des autres, tout en conservant "l'interrupteur général" :) pour activer/désactiver l'ensemble du formatage lorsque nécessaire. Ainsi, seule la zone concernée par la saisie est affectée par le formatage conditionnel. Bien entendu, chaque zone peut aussi être un tableau complet, si la feuille en contient plusieurs.