Le danger des mises en forme conditionnelles

formation-excel-mise-en-forme-conditionnelles 1Un truc important à savoir, notamment si votre fichier ralentit au fur et à mesure que vous ajoutez des informations.

Lorsque l'on fait un copier - Édition - Collage spécial en format d'une cellule contenant une mise en forme conditionnelle sur une cellule ayant déjà une mise en forme conditionnelle, il n'y a pas remplacement, mais SUPERPOSITION des conditions.

Je travaillais sur un fichier avec plusieurs centaines de cellules de mises en formes conditionnelles simples. Mon code collait les MFC à partir d'un modèle. Donc à chaque réactualisation, ca augmentait d'autant le nombre de MFC dans le fichier... d'où ralentissement et augmentation exponentielle du fichier.

Comme indiqué dans la copie d'écran, vous voyez des centaines de MFC qui sont inutiles 🙂

D'où l'insertion du code suivant pour supprimer les mises en formes conditionnelles avant collage en format :
Selection.FormatConditions.Delete

Si vous êtes certain de ce que vous faites, vous pouvez aussi réinitialiser toutes les MFC de la feuille:

Sub reinitialise_toutes_les_mfc()
If MsgBox("Ceci va réinitialiser toutes les mises en formes conditionnelles de la feuille. Voulez-vous continuer?", vbYesNo, "Attention") = vbYes Then
Cells.FormatConditions.Delete
End If
End Sub

A bientôt.

Gaëtan

Pour marque-pages : Permaliens.

4 réponses à Le danger des mises en forme conditionnelles

  1. Ping :Quatre conseils pour des fichiers Excel très lents - XLérateur

  2. Chloé dit :

    Bonjour,
    pouvez vous me dire où insérer cette condition ?

  3. Gaetan Mourmant dit :

    Bonjour,
    Je ne suis pas certain de comprendre votre question. Pourriez vous m’envoyer un exemple par email?
    Merci
    Gaetan Mourmant

  4. Mk dit :

    Pour ne conserver que les n premières MFC :
    Sub Macro2()
    Dim wks, rng, n

    Set wks = Worksheets(“Weekly”)
    Set rng = wks.Range(“P:CI”)
    n = 50
    While n < rng.FormatConditions.Count
    rng.FormatConditions(n).Delete
    Wend
    Debug.Print rng.FormatConditions.Count
    End Sub

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.