Minuterie VBA

Fonction Excel VBA TIMER

VBA Timer est une fonction intégrée utilisée pour nous donner la valeur fractionnaire des secondes, c'est une fonction très utile qui est parfois utilisée pour mettre en pause tout ensemble de codes en cours d'exécution ou les reprendre en fonction du temps fourni par l'utilisateur, la minuterie est simplement utilisé comme une instruction dans VBA avec l'entrée de temps.

En termes simples, le TIMER donne le nombre total de secondes écoulées depuis minuit du jour en cours. Dès la première ligne du code, nous pouvons en fait suivre le temps consommé par notre code pour terminer le processus spécifié dans la sous-procédure.

Parfois, lorsque vous écrivez un code et que vous souhaitez tester la durée du code, c'est-à-dire quel est le temps total mis par votre code pour terminer la sous-procédure. En testant la durée réelle de votre code, vous pouvez rendre votre code efficace et éliminer les processus chronophages en supprimant les codes indésirables ou longs de votre module.

Comment utiliser la fonction TIMER dans VBA?

Comme je l'ai dit, la fonction TIMER renvoie le nombre total de secondes écoulées depuis minuit de la date actuelle. Lorsque j'écris cet article, l'heure est 13:50:45 en Inde.

J'ai créé un nom de macro et attribué la valeur de TIMER dans la boîte de message VBA.

Code:

 Sub Timer_Example1 () MsgBox Timer End Sub 

Lorsque j'exécute ce code, j'ai obtenu le résultat 50480.08.

Il s'agit du nombre total de secondes écoulées depuis minuit d'aujourd'hui, c'est-à-dire à partir de minuit

Donc, de minuit 12 à l'heure actuelle 14:01:20, un total de 14 heures 1 minute 20 secondes s'est écoulé. En secondes, il est égal à 50480.08 qui est donné par notre fonction TIMER.

Exemples

Vous pouvez télécharger ce modèle Excel de minuterie VBA ici - Modèle Excel de minuterie VBA

Exemple # 1 - Calculez le temps total pris par votre code

Nous allons maintenant effectuer un codage simple pour tester le temps nécessaire au VBA pour exécuter la procédure. J'ai écrit du code comme indiqué dans l'image ci-dessous.

Code:

 Sub Do_Until_Example1 () Dim ST As Single ST = Timer Dim x As Long x = 1 Do Until x = 100000 Cells (x, 1) .Value = xx = x + 1 Loop MsgBox Timer - ST End Sub 

Si j'exécute ce code maintenant, il me montrera le temps total mis par le VBA pour s'exécuter.

Il dit 3.058594, le résultat donné par cette fonction est en secondes c'est à dire que le temps total pris par ce code est de 3.058 secondes.

Pour que vous utilisiez le code, j'ai écrit le code ci-dessous pour vous.

Code:

 Sub Timer_Example1 () Dim StartingTime As Single StartingTime = Timer 'Entrez votre code ici' Entrez votre code ici 'Entrez votre code ici' Entrez votre code ici MsgBox Timer - StartingTime End Sub 

Utilisez ce qui précède et tapez votre code après le code StartingTime = Timer mais avant le code MsgBox Timer - StartingTime c'est à dire dans la zone verte, vous devez entrer votre code.

Explication: Premièrement, la variable StartingTime = Timer signifie qu'au moment de l'exécution, le code est égal au temps écoulé entre minuit et l'heure d'exécution du code.

Timer - StartingTime: Cela signifie après l'exécution du code quel est le temps écoulé moins le temps enregistré au début du code dans une heure de début variable .

Cela donnera la différence entre l'heure de début et l'heure de fin et retournera le résultat.

Exemple # 2 - Afficher le résultat dans le format d'heure correct

Comme nous l'avons vu, le résultat donné par la fonction est en secondes mais pas au format précis. Cependant, nous pouvons appliquer un format d'heure VBA au résultat final en utilisant la fonction FORMAT.

Utilisez le code ci-dessous pour voir le résultat dans le format d'heure correct, à savoir le format «hh: mm: ss».

J'ai utilisé la fonction FORMAT ici. Le résultat est donné par (Minuterie - heure de démarrage). Je l'ai divisé par le nombre 86400 pour le convertir en secondes selon les règles de format de l'heure, puis j'ai appliqué le format de l'heure au format heure, minute et seconde.

Maintenant, si j'exécute le code, il donnera le résultat comme ceci.

Ainsi, le temps total pris par le code est de 3 secondes.

La beauté de ce code est qu'au moment où il traverse 60 secondes, il affichera le résultat en quelques minutes. J'ai mis mon code en pause pendant une minute (en utilisant Ctrl + Break) et voir le résultat.

Ainsi, le temps total pris par ce code est maintenant de 1 minute 2 secondes.

Exemple # 3 - Code alternatif à la minuterie

Il existe une alternative à TIMER en utilisant la fonction NOW () . Voici le code alternatif.

Choses à retenir

  • La fonction TIMER restaure la valeur à la fin de la journée, c'est-à-dire à 23:59:59.
  • La fonction NOW renvoie la date et l'heure actuelles.
  • TIMER affiche le nombre total de secondes écoulées depuis la date actuelle minuit.