VBA – Désactiver (ou Activer) les Calculs Automatiques

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on août 22, 2022

Chaque fois que vous mettez à jour la valeur d’une cellule, Excel passe par un processus de recalcul du classeur. Lorsque vous travaillez directement dans Excel, vous souhaitez que cela se produise 99,9 % du temps (sauf si vous travaillez avec un classeur extrêmement volumineux). Cependant, cela peut considérablement ralentir votre code VBA. Une bonne pratique consiste à définir l’option de calcul en mode manuel au début des macros et à restaurer les calculs automatiques à la fin des macros. Si vous devez recalculer le classeur, vous pouvez demander manuellement à Excel d’effectuer le calcul

Désactiver les Calculs Automatiques

Vous pouvez désactiver le calcul automatique avec une macro en attribuant la valeur xlManual à l’option Calculation de l’objet Application. Utilisez le code VBA suivant :

Application.Calculation = xlManual

Réactiver les Calculs Automatiques

Pour réactiver le calcul automatique avec le paramètre xlAutomatic :

Application.Calculation = xlAutomatic

Je recommande de désactiver les calculs automatiques au tout début de votre procédure et de les réactiver à la fin. Votre code ressemblera à ceci :

Exemple de Macro Désactivant les Calculs Automatiques

Sub Exemple_Calculs_Auto()
    Application.Calculation = xlManual

    'Votre Code


    Application.Calculation = xlAutomatic
End Sub

Calcul Manuel

Lorsque les calculs automatiques sont désactivés, vous pouvez utiliser la commande Calculate pour forcer Excel à recalculer:

Calculate

Vous pouvez également demander à Excel de recalculer uniquement une feuille de calcul individuelle :

Worksheets("Feuil1").Calculate

Vous pouvez également demander à VBA de recalculer uniquement une plage (cliquez pour lire notre article sur les méthodes de calcul VBA)

Voici comment cela pourrait se présenter dans une macro :

Sub Exemple_Calcul_Auto_Recalcul_Manuel()
    Application.Calculation = xlManual

    'Votre Code

    'Recalcul du classeur
    Calculate
    
    'Suite de votre code

    Application.Calculation = xlAutomatic
End Sub

Paramètres VBA – Accélération du Code

Si votre objectif est d’accélérer votre code, vous devriez également envisager d’ajuster ces autres paramètres :

La désactivation de l’option Screenupdating peut faire une énorme différence en termes de vitesse :

Application.ScreenUpdating = False

Désactiver la barre d’état peut également faire une petite différence :

Application.DisplayStatusBar = False

Si votre classeur contient des événements, vous devez également désactiver les événements au début de vos procédures (pour accélérer le code et éviter les boucles sans fin!) :

Application.EnableEvents = False

Enfin, votre code VBA peut être ralenti lorsqu’Excel essaie de recalculer les sauts de page (Note : Ce ne sont pas toutes procédures qui seront impactées). Pour désactiver DisplayPageBreaks, utilisez cette ligne de code :

ActiveSheet.DisplayPageBreaks = False

La Programmation VBA Simplifiée

Ne cherchez plus de code VBA en ligne. Découvrez AutoMacro – un générateur de code VBA qui permet aux débutants de programmer leurs propres procédures avec un minimum de connaissances en programmation et avec de nombreuses fonctionnalités permettant à tous les utilisateurs de gagner du temps!

alt text En savoir plus !

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA