Conseils de vitesse VBA Excel 2016

VBA pour Excel 2016 est rapide, mais ce n'est pas toujours assez rapide. (Les programmes informatiques ne sont jamais assez rapides.) Continuez à lire pour découvrir quelques exemples de programmation que vous pouvez utiliser pour accélérer vos macros.

Désactiver la mise à jour de l'écran

Lors de l'exécution d'une macro, vous pouvez vous asseoir et regarder toute l'action à l'écran qui se produit dans la macro. Bien que cela puisse être instructif, une fois que la macro fonctionne correctement, c'est souvent ennuyeux et peut ralentir considérablement les performances de votre macro. Heureusement, vous pouvez désactiver la mise à jour de l'écran qui se produit normalement lorsque vous exécutez une macro. Pour désactiver la mise à jour de l'écran, utilisez l'instruction suivante :

Application.ScreenUpdating = Faux

Si vous souhaitez que l'utilisateur voie ce qui se passe à tout moment pendant la macro, utilisez l'instruction suivante pour réactiver la mise à jour de l'écran :

Application.ScreenUpdating = True

Pour démontrer la différence de vitesse, exécutez cette macro simple, qui remplit une plage de nombres :

Sous-Remplissage ()
  Dim r comme long, c comme long
  Dim Nombre aussi long
  Nombre = 0
  Pour r = 1 à 50
    Pour c = 1 à 50
      Nombre = Nombre + 1
      Cellules (r, c).Sélectionnez
      Cellules(r, c).Valeur = Nombre
    c suivant
  Suivant r
Fin du sous-marin

Vous voyez chaque cellule sélectionnée et la valeur entrée dans les cellules. Insérez maintenant l'instruction suivante au début de la procédure et exécutez-la à nouveau :

Application.ScreenUpdating = Faux

La plage est remplie beaucoup plus rapidement et vous ne voyez le résultat que lorsque la macro est terminée et que la mise à jour de l'écran est (automatiquement) définie sur True.

Lorsque vous déboguez du code, l'exécution du programme se termine parfois quelque part au milieu sans que vous ayez réactivé la mise à jour de l'écran. Cela provoque parfois l'absence totale de réponse de la fenêtre d'application d'Excel. Le moyen de sortir de cet état gelé est simple : revenez au VBE et exécutez l'instruction suivante dans la fenêtre Exécution :

Application.ScreenUpdating = True

Désactiver le calcul automatique

Si vous avez une feuille de calcul avec de nombreuses formules complexes, vous constaterez peut-être que vous pouvez accélérer considérablement les choses en définissant le mode de calcul sur manuel pendant l'exécution de votre macro. Une fois la macro terminée, redéfinissez le mode de calcul sur automatique.

L'instruction suivante définit le mode de calcul Excel sur manuel :

Application.Calculation = xlCalculationManual

Exécutez l'instruction suivante pour définir le mode de calcul sur automatique :

Application.Calculation = xlCalculationAutomatique

Si votre code utilise des cellules avec des résultats de formule, la désactivation du calcul signifie que les cellules ne seront pas recalculées, sauf si vous dites explicitement à Excel de le faire !

Éliminer ces messages d'alerte embêtants

Comme vous le savez, une macro peut effectuer automatiquement une série d'actions. Dans de nombreux cas, vous pouvez démarrer une macro, puis passer du temps dans la salle de pause pendant qu'Excel fait son travail. Certaines opérations Excel, cependant, affichent des messages qui nécessitent une réponse humaine. Ces types de messages signifient que vous ne pouvez pas laisser Excel sans surveillance pendant qu'il exécute votre macro, à moins que vous ne connaissiez l'astuce secrète.

Conseils de vitesse VBA Excel 2016

Vous pouvez demander à Excel de ne pas afficher ces types d'alertes lors de l'exécution d'une macro.

L'astuce secrète pour éviter ces messages d'alerte consiste à insérer l'instruction VBA suivante dans votre macro :

Application.DisplayAlerts = Faux

Excel exécute l'opération par défaut pour ces types de messages. Dans le cas de la suppression d'une feuille, l'opération par défaut est Supprimer. Si vous n'êtes pas sûr de l'opération par défaut, effectuez un test pour voir ce qui se passe.

Lorsque la procédure se termine, Excel réinitialise automatiquement la propriété DisplayAlerts sur True. Si vous devez réactiver les alertes avant la fin de la procédure, utilisez cette instruction :

Application.DisplayAlerts = True

Simplifier les références d'objets

Comme vous le savez probablement déjà, les références aux objets peuvent devenir très longues. Par exemple, une référence complète à un objet Range peut ressembler à ceci :

Classeurs ("MonLivre.xlsx").Feuilles de travail ("Feuille1") _
  .Range(« Taux d'intérêt »)

Si votre macro utilise fréquemment cette plage, vous souhaiterez peut-être créer une variable objet à l'aide de la commande Définir. Par exemple, l'instruction suivante affecte cet objet Range à une variable d'objet nommée Rate :

Définir le taux = Classeurs ("MyBook.xlsx") _
  .Feuilles de calcul ("Feuille1").Plage ("Taux d'intérêt")

Après avoir défini cette variable objet, vous pouvez utiliser la variable Taux plutôt que la longue référence. Par exemple, vous pouvez modifier la valeur de la cellule nommée InterestRate :

Taux.Valeur = .085

C'est beaucoup plus facile à taper que l'instruction suivante :

Classeurs ("MonLivre.xlsx").Feuilles de travail ("Feuille1"). _
  Plage (« Taux d'intérêt ») = 0,085

En plus de simplifier votre codage, l'utilisation de variables objet accélère considérablement vos macros.

Déclaration des types de variables

Vous n'avez généralement pas à vous soucier du type de données que vous affectez à une variable. Excel gère tous les détails pour vous dans les coulisses. Par exemple, si vous avez une variable nommée MyVar, vous pouvez affecter un numéro de n'importe quel type à cette variable. Vous pouvez même lui attribuer une chaîne de texte plus tard dans la procédure.

Si vous souhaitez que vos procédures s'exécutent le plus rapidement possible, indiquez à Excel quel type de données sera affecté à chacune de vos variables. C'est ce qu'on appelle la déclaration du type d'une variable.

En général, vous devez utiliser le type de données qui nécessite le plus petit nombre d'octets tout en pouvant gérer toutes les données qui lui sont affectées. Lorsque VBA travaille avec des données, la vitesse d'exécution dépend du nombre d'octets dont VBA dispose. En d'autres termes, moins les données sont utilisées, plus VBA peut accéder et manipuler les données rapidement. Une exception à cela est le type de données Integer. Si la vitesse est critique, utilisez plutôt le type de données Long.

Si vous utilisez une variable objet, vous pouvez déclarer la variable comme un type d'objet particulier. Voici un exemple :

Taux de variation en tant que plage
Définir le taux = Classeurs ("MyBook.xlsx") _
  .Feuilles de calcul ("Feuille1").Plage ("Taux d'intérêt")

Utilisation de la structure With-End With

Avez-vous besoin de définir un certain nombre de propriétés pour un objet ? Votre code s'exécute plus rapidement si vous utilisez la structure With-End With. Un avantage supplémentaire est que votre code peut être plus facile à lire.

Le code suivant n'utilise pas With-End With :

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = True
Sélection.Orientation = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Voici le même code, réécrit pour utiliser With-End With :

Avec sélection
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Vrai
  .Orientation = 0
  .ShrinkToFit = Faux
  .MergeCells = Faux
Terminer par

Lorsque vous utilisez With-End With, assurez-vous que chaque instruction commence par un point.

Leave a Comment

Comment définir les options de vérification linguistique de Word 2010

Comment définir les options de vérification linguistique de Word 2010

Découvrez comment configurer les options de vérification linguistique dans Word 2010 pour améliorer votre rédaction et éviter les erreurs.

Comment utiliser la fonction CONFIANCE dans Excel

Comment utiliser la fonction CONFIANCE dans Excel

Découvrez comment utiliser les fonctions CONFIDENCE.NORM et CONFIDENCE.T dans Excel pour calculer des intervalles de confiance pour les moyennes de population, améliorant ainsi la prise de décision basée sur des données.

Formater les nombres en milliers et en millions dans les rapports Excel

Formater les nombres en milliers et en millions dans les rapports Excel

Améliorez la lisibilité de vos rapports Excel en formatant vos chiffres en milliers ou millions avec des astuces simples et efficaces pour votre audience.

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Comment personnaliser vos étiquettes de données de graphique croisé dynamique Excel

Apprenez comment personnaliser vos étiquettes de données dans Excel pour un meilleur rapport. Utilisez les valeurs de votre tableau croisé dynamique efficacement.

Comment créer une application Web Access

Comment créer une application Web Access

Découvrez comment créer une application Web dans Access 2016. Apprenez les étapes essentielles pour développer votre application en ligne facilement.

Comment utiliser les commentaires dans Microsoft Word 2019

Comment utiliser les commentaires dans Microsoft Word 2019

Découvrez comment ajouter, répondre, afficher et supprimer des <strong>commentaires dans Microsoft Word</strong> 2019 pour optimiser votre collaboration.

Feuille intelligente 9.1.1

Feuille intelligente 9.1.1

Smartsheet est une plateforme de travail dynamique qui vous permet de gérer des projets, de créer des flux de travail et de collaborer avec votre équipe.

SharePoint

SharePoint

SharePoint est un système de collaboration basé sur le Web qui utilise une variété d'applications de flux de travail, des bases de données de « liste » et d'autres composants Web, ainsi que des fonctionnalités de sécurité pour donner le contrôle aux groupes professionnels qui travaillent ensemble.

Calendrier perpétuel 1.0.38/1.0.36

Calendrier perpétuel 1.0.38/1.0.36

Van Nien Calendar est une application d'affichage de calendrier sur votre téléphone, vous aidant à voir rapidement la date luni-solaire sur votre téléphone, organisant ainsi votre travail important.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook est une application commerciale et de productivité développée par Microsoft Corporation.