Désactiver temporairement MFC

Kiriko

XLDnaute Occasionnel
Bonjour à tous,
Je cherche à pouvoir désactiver (et réactiver) les "mises à jour" de l'ensemble des MFC d'un classeur comportant plusieurs onglets.
Je pensais que c'était un "évènement", mais visiblement non. Les MFC sont nombreuses, complexes, et se réfèrent à plusieurs feuilles, donc c'est extrêmement long, la moindre saisie ou même clic dans une cellule lance un re-calcul de toutes les MFC visiblement....
J'ai désactivé le calcul automatique, placé EnableEvents et ScreenUpdating sur False, mais rien n'y fait...
Donc si on pouvait en VBA soit désactiver le "rafraichissement", soit, au pire, désactiver les MFC (mais pouvoir les réactiver), cela me permettrait d'utiliser le fichier...
Je ne doute pas que le sujet ait déjà été abordé, mais je n'ai pas trouvé...

Merci par avance,
En espérant avoir été clair....
 
Dernière édition:

Tentative

XLDnaute Occasionnel
Re : Désactiver temporairement MFC

Bonjour,

C'est souvent un problème que d'utiliser certaines fonctions en grande quantité.

J'ai trouvé ceci :
Si vous utilisez le VBA, vous pouvez écrire une courte commande pour désactiver temporairement les formats conditionnels d’un fichier Excel. Vous utilisez le Vraie (True) et le Faux (False) pour activer et désactiver les formats conditionnels:

Worksheet.EnableFormatConditionsCalculation =TRUE/FALSE

Ceci c'est pour une feuille : je ne sais pas si ça fonctionne avec Worksheets. Sinon, faire une boucle...

Si vous utilisez la version Excel 2013, vous avez un add-in qui se nomme Inquire. Il propose notamment un outil, Clean Excess Cell Formatting, qui permet de faire le nettoyage de vos formats.

Source : Mes fichiers prennent du temps à ouvrir et fermer

En espérant que ce puisse aider.


Tentative
 
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Désactiver temporairement MFC

Bonjour Tentative, et merci beaucoup !
J'ai un souci avec
Worksheet.EnableFormatConditionsCalculation = False
J'obtiens une erreur ("Objet requis") dans excel 2013...
Comment y remédier ?

Merci encore !!
 

chris

XLDnaute Barbatruc
Re : Désactiver temporairement MFC

Bonjour

On peut aussi, mais c'est mieux de prévoir au début, ajouter à chaque plage concernée une MFC, qui selon la valeur d'une cellule ou variable nommée, enlève les mises en forme ou rétablit celle d'origine (elle doit être en 1ère position des MFC avec la case "Interrompre si vrai cochée".

J'utilise cela dans les TCD et cela marche bien.
 

Tentative

XLDnaute Occasionnel
Re : Désactiver temporairement MFC

Bonjour,

À tester ...
TestMfcOff avant les saisis de données
TestMfcOn après les saisis de données.

Code:
Option Explicit
Dim ws As Worksheet, a As Range

Sub TestMfcOff()
For Each ws In ThisWorkbook.Worksheets
   ws.EnableFormatConditionsCalculation = False
   Application.Calculation = xlManual
Next
End Sub


Sub TestMfcOn()
For Each ws In ThisWorkbook.Worksheets
   ws.EnableFormatConditionsCalculation = True
   Application.Calculation = xlAutomatic
Next
End Sub

Sans fichier pour tester, c'est le mieux que je peux faire.

L'option proposé par chris est probablement la meilleure. Il faudrait apdapter ton chiffrier.
Investir un peu de temps pour adapter peut faire gagner énormément de temps par la suite.


Tentative
 

Kiriko

XLDnaute Occasionnel
Re : Désactiver temporairement MFC

Bonjour chris, bonjour Tentative,
Merci beaucoup, cela semble fonctionner parfaitement...
chris, je ne suis pas sûr de bien comprendre ta proposition, aurais-tu un mini fichier exemple ou un lien ?
C'est comme un bouton "on/off" avec par exemple une cellule "hors tableau" sur laquelle on mettrait un 1 ou rien par exemple et qui laisserait passer la suite des MFC (ou non) ?? Cela enlève (et remet) les MFC si je comprends bien, ça ne stoppe pas juste le rafraichissement ? Je vais faire des essais......

Merci encore !!
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : Désactiver temporairement MFC

Bonjour

Ci-joint exemple simple.

Néanmoins, je ne sais si effectivement les autres MFC continuent ou non à être analysées par Excel, et donc si on gagne sur le temps de calcul.

Dans mon cas je l'utilise juste pour avoir 2 modes de lectures d'un même TCD, pas pour des raisons de performances.

Edit : correction faute de frappe
 

Pièces jointes

  • MFC_OuiNon.xlsx
    9.3 KB · Affichages: 83
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Désactiver temporairement MFC

Bonjour chris,
Merci pour ce fichier exemple, très simple et très pratique, il va me servir, c'est sur...
Visiblement, mon fichier rame pour d'autres raisons au final, pas encore trouvé pourquoi, je creuse (et peut-être referais-je un autre post).
Peut-être du côté des formules "NB.SI.ENS" qui se réfèrent à d'autres onglets du même classeur... La moindre saisie dans un seule cellule engendre le recalcul du classeur complet...

Merci encore, chris et Tentative !!
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 925
Membres
101 841
dernier inscrit
ferid87