Accueil Médias sociaux 10 Façons d'accélérer vos macros - des mannequins

10 Façons d'accélérer vos macros - des mannequins

Table des matières:

Vidéo: Comment Calculer Tes Calories? (La Meilleure Méthode) 2024

Vidéo: Comment Calculer Tes Calories? (La Meilleure Méthode) 2024
Anonim

Au fur et à mesure que vos macros Excel deviennent de plus en plus robustes et complexes, vous risquez de perdre des performances. En parlant de macros, le mot performance est généralement synonyme de vitesse . La vitesse est la rapidité avec laquelle vos procédures VBA exécutent les tâches prévues. Voici dix façons d'aider vos macros Excel à fonctionner à leur niveau de performance optimal.

Calculs de feuille d'arrêt

Saviez-vous que chaque fois qu'une cellule affectant une formule de votre feuille de calcul est modifiée ou manipulée, Excel recalcule la totalité de la feuille de calcul? Dans les feuilles de calcul contenant une grande quantité de formules, ce comportement peut considérablement ralentir vos macros.

Vous pouvez utiliser l'application. Propriété de calcul pour indiquer à Excel de passer en mode de calcul manuel. Lorsqu'un classeur est en mode de calcul manuel, le classeur ne recalculera pas jusqu'à ce que vous déclenchiez explicitement un calcul en appuyant sur la touche F9.

Placez Excel en mode de calcul manuel, exécutez votre code, puis revenez au mode de calcul automatique.

Sous Macro1 () Application. Calcul = xlCalculationManual 'Placez votre code macro ici Application. Calcul = xlCalculationAutomatic End Sub

Le retour du mode de calcul sur xlCalculationAutomatic déclenchera automatiquement un nouveau calcul de la feuille de calcul, il n'est donc pas nécessaire d'appuyer sur la touche F9 après l'exécution de votre macro.

Désactivation de la mise à jour de l'écran de feuille

Vous remarquerez peut-être que lorsque vos macros s'exécutent, votre écran fait beaucoup de scintillement. Ce scintillement est Excel essayant de redessiner l'écran pour montrer l'état actuel de la feuille de calcul. Malheureusement, chaque fois qu'Excel redessine l'écran, il prend des ressources mémoire.

Vous pouvez utiliser l'application. La propriété ScreenUpdating pour désactiver les mises à jour de l'écran jusqu'à ce que votre macro soit terminée. La désactivation de la mise à jour de l'écran permet d'économiser du temps et des ressources, ce qui permet à votre macro de fonctionner un peu plus rapidement. Une fois votre code de macro terminé, vous pouvez réactiver la mise à jour de l'écran.

Sous Macro1 () Application. Calcul = xlCalculationManual Application. ScreenUpdating = False 'Placez votre code de macro ici Application. Calcul = xlCalculationAutomatic Application. ScreenUpdating = True End Sub

Après avoir défini la propriété ScreenUpdating sur True, Excel déclenchera automatiquement un redessin de l'écran.

Désactiver les mises à jour de la barre d'état

La barre d'état Excel, qui apparaît en bas de la fenêtre Excel, affiche normalement la progression de certaines actions dans Excel.Si votre macro fonctionne avec beaucoup de données, la barre d'état prendra certaines ressources.

Il est important de noter que la désactivation de la mise à jour de l'écran est distincte de la désactivation de l'affichage de la barre d'état. La barre d'état continuera d'être mise à jour même si vous désactivez la mise à jour de l'écran. Vous pouvez utiliser l'application. Propriété DisplayStatusBar pour désactiver temporairement les mises à jour de la barre d'état, améliorant ainsi les performances de votre macro:

Sub Macro1 () Application. Calcul = xlCalculationManual Application. ScreenUpdating = Fausse application. DisplayStatusBar = False 'Placez votre code de macro ici Application. Calcul = xlCalculationAutomatic Application. ScreenUpdating = Vraie application. DisplayStatusBar = True End Sub

Indiquer à Excel d'ignorer les événements

Vous pouvez implémenter des macros en tant que procédures événementielles, en indiquant à Excel d'exécuter du code lors de la modification d'une feuille de calcul ou d'un classeur.

Parfois, les macros standard effectuent des modifications qui déclenchent une procédure événementielle. Par exemple, si vous avez une macro standard qui manipule plusieurs cellules sur Sheet1, chaque fois qu'une cellule sur cette feuille est modifiée, votre macro doit mettre en pause pendant l'exécution de l'événement Worksheet_Change.

Vous pouvez ajouter un autre niveau d'amélioration des performances en utilisant la propriété EnableEvents pour indiquer à Excel d'ignorer les événements pendant l'exécution de votre macro.

Définissez la propriété EnableEvents sur False avant d'exécuter votre macro. Après l'exécution de votre code de macro, vous pouvez définir la propriété EnableEvents sur True.

Sous Macro1 () Application. Calcul = xlCalculationManual Application. ScreenUpdating = Fausse application. DisplayStatusBar = Fausse application. EnableEvents = False 'Placez votre code de macro ici Application. Calcul = xlCalculationAutomatic Application. ScreenUpdating = Vraie application. DisplayStatusBar = True Application. EnableEvents = True End Sub

Masquage des sauts de page

Chaque fois que votre macro modifie le nombre de lignes, modifie le nombre de colonnes ou modifie la mise en page d'une feuille de calcul, Excel doit prendre le temps de recalculer les sauts de page sur la feuille.

Vous pouvez éviter ce comportement en masquant simplement les sauts de page avant de démarrer votre macro.

Définissez la propriété de feuille DisplayPageBreaks sur False pour masquer les sauts de page. Si vous souhaitez continuer à afficher des sauts de page après l'exécution de votre macro, définissez la propriété de feuille DisplayPageBreaks sur True.

Sous Macro1 () Application. Calcul = xlCalculationManual Application. ScreenUpdating = Fausse application. DisplayStatusBar = Fausse application. EnableEvents = Faux activesheet. DisplayPageBreaks = False 'Placez votre code de macro ici Application. Calcul = xlCalculationAutomatic Application. ScreenUpdating = Vraie application. DisplayStatusBar = True Application. EnableEvents = True Activesheet. DisplayPageBreaks = Vrai End Sub

Suspension des mises à jour de la table pivot

Si votre macro manipule des tableaux pivotants contenant des sources de données volumineuses, vous risquez d'obtenir des performances médiocres.

Vous pouvez améliorer les performances de votre macro en suspendant le recalcul du tableau pivotant jusqu'à ce que tous les changements de champ de pivot aient été effectués. Définissez simplement le tableau croisé dynamique. La propriété ManualUpdate à True pour différer le recalcul, exécutez votre code de macro et puis définissez le tableau croisé dynamique. La propriété ManualUpdate revient à False pour déclencher le recalcul.

Sub Macro1 () ActiveSheet. PivotTables ("PivotTable1"). ManualUpdate = True 'Placez votre code de macro ici ActiveSheet. PivotTables ("PivotTable1"). ManualUpdate = False End Sub

Suppression de la copie et du collage

Il est important de garder à l'esprit que bien que Macro Recorder gagne du temps en écrivant du code VBA, il n'écrit pas toujours le code le plus efficace. Un exemple typique est la façon dont Macro Recorder capture toute action copier-coller que vous effectuez pendant l'enregistrement.

Vous pouvez donner un petit coup de pouce à vos macros en supprimant l'intermédiaire et en effectuant une copie directe d'une cellule vers une cellule de destination. Ce code alternatif utilise l'argument Destination pour contourner le presse-papiers et copier le contenu de la cellule A1 directement dans la cellule B1.

Plage ("A1"). Copier la destination: = Intervalle ("B1")

Si vous devez copier uniquement des valeurs (pas de formatage ou de formules), vous pouvez améliorer encore plus les performances en évitant la méthode Copier tous ensemble. Définissez simplement la valeur de la cellule de destination sur la même valeur que celle trouvée dans la cellule source. Cette méthode est environ 25 fois plus rapide qu'avec la méthode Copy:

Range ("B1"). Valeur = plage ("A1"). Valeur

Si vous devez copier uniquement des formules d'une cellule à l'autre (pas de valeurs ou de formatage), vous pouvez définir la formule de la cellule de destination sur la même formule contenue dans la cellule source:

Plage ("B1"). Formule = plage ("A1"). Formule

Utilisation de l'instruction With

Lors de l'enregistrement de macros, vous manipulez souvent le même objet plus d'une fois. Vous pouvez gagner du temps et améliorer les performances en utilisant l'instruction With pour effectuer plusieurs actions sur un objet donné en une fois.

L'instruction With utilisée dans l'exemple suivant indique à Excel d'appliquer toutes les modifications de mise en forme en même temps:

With Range ("A1"). Police de caractère. Gras = Vrai. Italique = Vrai. Underline = xlUnderlineStyleSingle End With

Prendre l'habitude de regrouper les actions dans les instructions With permettra non seulement de faire tourner vos macros plus rapidement, mais aussi de faciliter la lecture de votre code de macro.

Éviter la méthode Select

Macro Recorder aime utiliser la méthode Select pour sélectionner explicitement des objets avant d'agir sur eux. Il n'y a généralement pas besoin de sélectionner des objets avant de travailler avec eux. En fait, vous pouvez considérablement améliorer les performances de la macro en n'utilisant pas la méthode Select.

Après avoir enregistré vos macros, prenez l'habitude de modifier le code généré pour supprimer les méthodes Select. Dans ce cas, le code optimisé ressemblerait à ceci:

Sheets ("Sheet1"). Plage ("A1"). FormulaR1C1 = "1000" Sheets ("Sheet2"). Plage ("A1"). FormulaR1C1 = "1000" Sheets ("Sheet3"). Plage ("A1"). FormulaR1C1 = "1000"

Notez que rien n'est sélectionné.Le code utilise simplement la hiérarchie d'objets pour appliquer les actions nécessaires.

Limiter les déplacements à la feuille de calcul

Une autre façon d'accélérer vos macros est de limiter le nombre de fois que vous référencez des données de feuille de calcul dans votre code. Il est toujours moins efficace d'extraire des données de la feuille de calcul que de la mémoire. C'est-à-dire que vos macros s'exécuteront beaucoup plus rapidement si elles n'ont pas à interagir de façon répétée avec la feuille de calcul.

Par exemple, le code simple suivant oblige VBA à retourner continuellement à Sheets ("Sheet1"). Plage ("A1") pour obtenir le nombre nécessaire à la comparaison dans l'instruction If:

Pour ReportMonth = 1 à 12 If Range ("A1"). Value = ReportMonth puis MsgBox 1000000 / ReportMonth End If Next ReportMonth

Une méthode beaucoup plus efficace consiste à enregistrer la valeur dans Sheets ("Sheet1"). Range ("A1") à une variable appelée MyMonth. De cette façon, le code fait référence à la variable MyMonth à la place de la feuille de calcul:

Dim MyMonth en tant que Integer MyMonth = Range ("A1"). Valeur pour ReportMonth = 1 à 12 Si MyMonth = ReportMonth puis MsgBox 1000000 / ReportMonth Fin Si Next ReportMonth

Pensez à tirer parti des variables pour travailler avec des données en mémoire, plutôt que de faire directement référence à des feuilles de calcul.

10 Façons d'accélérer vos macros - des mannequins

Le choix des éditeurs

Plume et Affiner les bords des sélections dans Photoshop Elements 10 - les nuls

Plume et Affiner les bords des sélections dans Photoshop Elements 10 - les nuls

Vous pouvez utiliser le Sélectionnez les commandes de menu pour modifier davantage les sélections en appliquant des contours et en affinant les bords de vos sélections, ainsi qu'une foule d'autres options, notamment l'expansion, la contraction, le lissage, l'adoucissement, la croissance et l'acquisition de pixels de même couleur. Si cela ne satisfait pas vos besoins de sélection, rien ne le fera. Vous pouvez utiliser ...

Remplissage des calques dans Photoshop Elements 10 - mannequins

Remplissage des calques dans Photoshop Elements 10 - mannequins

Un calque de remplissage permet d'ajouter une couche de couleur unie, un dégradé ou un motif Comme les calques de réglage, les calques de remplissage comprennent également des masques de calque. Vous pouvez modifier, réorganiser, dupliquer, supprimer et fusionner des calques de remplissage de la même manière que les calques de réglage. Vous pouvez mélanger des calques de remplissage avec d'autres calques en utilisant les options d'opacité et de mode de fusion ...

Formats de fichiers pris en charge dans Photoshop Elements 10 - dummies

Formats de fichiers pris en charge dans Photoshop Elements 10 - dummies

Lorsque vous enregistrez des fichiers dans Elements, vous devez sélectionner format de fichier dans le menu déroulant Format situé dans les boîtes de dialogue Enregistrer et Enregistrer sous. Lorsque vous choisissez parmi les différentes options de format, gardez les informations suivantes à l'esprit: Les formats de fichiers sont particulièrement importants lorsque vous échangez des fichiers avec d'autres utilisateurs. Chaque ...

Le choix des éditeurs

AutoCAD 2011 Configuration de la mise en page du dessin - nuls

AutoCAD 2011 Configuration de la mise en page du dessin - nuls

La configuration du dessin dans AutoCAD 2011 peut sembler compliquée avant de s'y habituer . Le tableau suivant répertorie dix commandes de configuration AutoCAD fondamentales dans l'ordre dans lequel vous les utilisez probablement, explique ce qu'elles font et vous indique où les trouver dans le menu déroulant classique ainsi que sur le ruban ...

Comment ajuster les paramètres de style de cote dans AutoCAD - mannequins

Comment ajuster les paramètres de style de cote dans AutoCAD - mannequins

Après avoir cliqué sur Nouveau ou Modifier dans le style de cote Dans la boîte de dialogue Gestionnaire, AutoCAD affiche la boîte de dialogue Nouveau style de cote à onglets ou la boîte de dialogue Modifier le style de cote avec un ensemble de paramètres époustouflant et potentiellement époustouflant, si vous ne faites pas attention.

Graphiques et limites de dessin d'autoCAD 2011: Millimètres - dummies

Graphiques et limites de dessin d'autoCAD 2011: Millimètres - dummies

Ce n'est pas une mauvaise idée pour votre dessin AutoCAD. Les limites représentent la zone de travail rectangulaire dans laquelle vous allez dessiner, ce qui correspond généralement au format de papier. Définir les limites d'AutoCAD correctement vous permet d'afficher la grille de dessin sur votre zone de travail, utilisez ZOOM All pour afficher cette zone de travail, et ...

Le choix des éditeurs

Guide du travail de la maison avec les bébés de papa - les nuls

Guide du travail de la maison avec les bébés de papa - les nuls

Vous pouvez décider d'être un SAHD qui travaille de maison. Si vous avez l'habitude de travailler avec beaucoup de gens ou dans un environnement occupé, vous vous trouvez soudainement à la maison avec un enfant et un ordinateur portable avec lequel travailler. Cela peut être étrange, solitaire et un peu ennuyeux. Tu peux être tenté de te faire ...

Dépistage des signes de troubles chez les enfants pour une intervention précoce - les nuls

Dépistage des signes de troubles chez les enfants pour une intervention précoce - les nuls

Détecter les problèmes tôt fait toute la différence . Les enfants qui reçoivent une intervention précoce s'améliorent plus rapidement et avec plus de succès que ceux dont les problèmes ne sont pas résolus pendant des années. Les signes suivants n'indiquent pas nécessairement d'énormes problèmes, mais doivent être vérifiés par un pédiatre et / ou un professionnel de la santé mentale: Retards importants dans la motricité Manque de contact avec les yeux Manque ...

Guide d'introduction à une belle-mère - mannequins

Guide d'introduction à une belle-mère - mannequins

Souhaitant trouver un autre partenaire, ou du moins avoir une relation amoureuse avec Quelqu'un de nouveau, est naturel. Votre vie ne doit pas être tout au sujet d'être un père et de travailler pour soutenir votre famille. Mais attention, vous n'êtes pas l'homme insouciant que vous étiez. Vous venez maintenant avec des extras. Quand vous partez ...