/ / Excel Paramètres de codage de performance VBA - excel, vba, excel-vba

Paramètres de codage de performance Excel VBA - excel, vba, excel-vba

J'ai fait des recherches pour accélérer mon codeExcel VBA et moi "avons trouvé les paramètres suivants qui ont été utiles. Ma question est la suivante: est-il possible de définir les lignes de code suivantes en une seule variable que je peux définir sur Activé ou Désactivé pour activer la liste complète?

speedUpCode = On

définirait tous les paramètres ci-dessous et s'il était désactivé, il inverserait tous les paramètres suivants en True / xlCalculationAutomatic

With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
ActiveSheet.DisplayPageBreaks = False "note this is a sheet-level setting

Réponses:

7 pour la réponse № 1

J'utilise ceci (très basique):

Sub GoFast(Optional bYesNo As Boolean = True)
With Application
.ScreenUpdating = Not bYesNo
.Calculation = IIf(bYesNo, xlCalculationManual, xlCalculationAutomatic)
End With
End Sub

Appeler avec True ou pas de paramètre pour accélérer les choses, puis avec False réinitialiser.

Les commentaires ci-dessus à propos de la possibilité de capturerl’état actuel des différents paramètres pour que vous puissiez revenir à l’état "original", et que tous les paramètres ne doivent pas toujours être mis à jour en fonction de ce que vous faites, méritent d’être pris en compte.


3 pour la réponse № 2

Vous pouvez utiliser une fonction pour faire cela comme si ...

Function speedUpCode(sStatus As String)

If sStatus = "On" Then
With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With

ActiveSheet.DisplayPageBreaks = False "note this is a sheet-level setting

Else if sStatus = "Off" then

With Application
.ScreenUpdating = True
.DisplayStatusBar = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With

ActiveSheet.DisplayPageBreaks = True "note this is a sheet-level setting

End Function

vous pouvez ensuite les utiliser pour allumer et éteindre

  speedUpCode "On"
speedUpCode "Off"

Cependant, gardez à l’esprit que vous vous retournezet désactiver les paramètres - vous devriez probablement vérifier l'état de ceux-ci avant de les modifier afin que vous puissiez les rétablir sur les paramètres d'origine plutôt que de simplement les désactiver à nouveau vous pouvez le faire avec des variables statiques