Comment utiliser les événements OnTime et les événements Keypress dans Excel 2016 VBA

Il existe deux types d'événements que vous pouvez utiliser dans la programmation VBA pour Excel 2016 qui ne sont pas associés à des objets : l'heure et les touches. Étant donné que l'heure et les touches ne sont pas associées à un objet particulier tel qu'un classeur ou une feuille de calcul, vous programmez ces événements dans un module VBA normal.

L'événement OnTime

L'événement OnTime se produit lorsqu'une heure particulière de la journée se produit. L'exemple suivant montre comment faire en sorte qu'Excel exécute une procédure lorsque l'événement 3 pm se produit. Dans ce cas, une voix de robot vous dit de vous réveiller, accompagnée d'une boîte de message :

Sous-ensembleAlarm()
  Application.OnTime 0.625, « DisplayAlarm »
Fin du sous-marin
Alarme d'affichage secondaire()
  Application.Speech.Speak ("Hé, réveille-toi")
  MsgBox « C'est l'heure de votre pause de l'après-midi ! »
Fin du sous-marin

Dans cet exemple, la méthode OnTime de l'objet Application est utilisée. Cette méthode prend deux arguments : l'heure (0,625 ou 15h00) et le nom de la procédure Sub à exécuter lorsque l'événement horaire se produit (DisplayAlarm).

Cette procédure est très utile si vous avez tendance à être tellement absorbé par votre travail que vous oubliez les réunions et les rendez-vous. Il suffit de définir un événement OnTime pour vous en souvenir.

La plupart des gens ont du mal à penser au temps en termes de système de numérotation Excel. Par conséquent, vous souhaiterez peut-être utiliser la fonction VBA TimeValue pour représenter l'heure. TimeValue convertit une chaîne qui ressemble à une heure en une valeur qu'Excel peut gérer. L'énoncé suivant montre un moyen plus simple de programmer un événement pour 15 heures :

Application.OnTime TimeValue ("3:00:00"), "DisplayAlarm"

Si vous souhaitez planifier un événement par rapport à l'heure actuelle (par exemple, dans 20 minutes), vous pouvez utiliser une instruction comme celle-ci :

Application.OnTime Now + TimeValue ("00:20:00"), "DisplayAlarm"

Vous pouvez également utiliser la méthode OnTime pour exécuter une procédure VBA un jour particulier. Vous devez vous assurer que votre ordinateur continue de fonctionner et que le classeur contenant la procédure reste ouvert. L'instruction suivante exécute la procédure DisplayAlarm à 17 heures le 31 décembre 2016 :

Application.OnTime DateValue ("31/12/2016 17:00"), "DisplayAlarm"

Cette ligne de code particulière pourrait être utile pour vous avertir que vous devez rentrer chez vous et vous préparer pour les festivités du Nouvel An.

Voici un autre exemple qui utilise l'événement OnTime. L'exécution des procédures UpdateClock écrit l'heure dans la cellule A1 et programme également un autre événement cinq secondes plus tard. Cet événement réexécute la procédure UpdateClock. L'effet net est que la cellule A1 est mise à jour avec l'heure actuelle toutes les cinq secondes. Pour arrêter les événements, exécutez la procédure StopClock (qui annule l'événement). Notez que NextTick est une variable au niveau du module qui stocke l'heure du prochain événement.

Dim NextTick As Date
Sous UpdateClock()
' Met à jour la cellule A1 avec l'heure actuelle
  ThisWorkbook.Sheets(1).Range("A1") = Temps
' Configurer le prochain événement dans cinq secondes
  NextTick = Now + TimeValue ("00:00:05")
  Application.OnTime NextTick, "UpdateClock"
Fin du sous-marin
Sous StopClock()
' Annule l'événement OnTime (arrête l'horloge)
  En cas d'erreur Reprendre ensuite
  Application.OnTime NextTick, "UpdateClock", , Faux
Fin du sous-marin

L'événement OnTime persiste même après la fermeture du classeur. En d'autres termes, si vous fermez le classeur sans exécuter la procédure StopClock, le classeur se rouvrira dans cinq secondes (en supposant qu'Excel soit toujours en cours d'exécution). Pour éviter cela, utilisez une procédure événementielle Workbook_BeforeClose qui contient l'instruction suivante :

Appel StopClock

La méthode OnTime a deux arguments supplémentaires. Si vous envisagez d'utiliser cette méthode, vous devez vous référer au système d'aide pour plus de détails.

Si vous souhaitez voir une application plutôt compliquée, consultez cette application d'horloge analogique. Le cadran de l'horloge est en fait un graphique, et le graphique est mis à jour toutes les secondes pour afficher l'heure de la journée. Inutile, mais amusant.

Comment utiliser les événements OnTime et les événements Keypress dans Excel 2016 VBA

Une application d'horloge analogique.

Événements de touche

Pendant que vous travaillez, Excel surveille en permanence ce que vous tapez. Pour cette raison, vous pouvez configurer les choses pour qu'une frappe ou une combinaison de touches exécute une procédure.

Voici un exemple qui réaffecte les clés PgDn et PgUp :

Sous-Setup_OnKey()
  Application.OnKey "{PgDn}", "PgDn_Sub"
  Application.OnKey "{PgUp}", "PgUp_Sub"
Fin du sous-marin
Sous PgDn_Sub()
  En cas d'erreur Reprendre ensuite
  ActiveCell.Décalage(1, 0).Activer
Fin du sous-marin
Sous PgUp_Sub()
  En cas d'erreur Reprendre ensuite
  ActiveCell.Décalage(-1, 0).Activer
Fin du sous-marin

Après avoir configuré les événements OnKey en exécutant la procédure Setup_OnKey, appuyer sur PgDn vous fait descendre d'une ligne. Appuyer sur PgUp vous fait monter d'une ligne.

Notez que les codes clés sont placés entre accolades et non entre parenthèses. Pour une liste complète des codes de clavier, consultez le système d'aide. Recherchez OnKey.

Dans cet exemple, On Error Resume Next est utilisé pour ignorer les erreurs générées. Par exemple, si la cellule active se trouve dans la première ligne, essayer de remonter d'une ligne provoque une erreur qui peut être ignorée en toute sécurité. Et si une feuille de graphique est active, il n'y a pas de cellule active.

En exécutant la routine suivante, vous annulez les événements OnKey :

Sous Cancel_OnKey()
  Application.OnKey "{PgDn}"
  Application.OnKey "{PgUp}"
Fin du sous-marin

L'utilisation d'une chaîne vide comme deuxième argument de la méthode OnKey n'annule pas l'événement OnKey. Au lieu de cela, Excel ignore simplement la frappe. Par exemple, l'instruction suivante indique à Excel d'ignorer Alt+F4. Le signe pourcentage représente la touche Alt :

  Application.OnKey "%{F4}", ""

Bien que vous puissiez utiliser la méthode OnKey pour affecter une touche de raccourci pour l'exécution d'une macro, vous devez utiliser la boîte de dialogue Options de macro pour cette tâche.

Si vous fermez le classeur qui contient le code et laissez Excel ouvert, la méthode OnKey ne sera pas réinitialisée. Par conséquent, si vous appuyez sur la touche de raccourci, Excel ouvrira automatiquement le fichier avec la macro. Pour éviter que cela ne se produise, vous devez inclure du code dans votre code d'événement Workbook_BeforeClose pour réinitialiser l'événement OnKey.

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.