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

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.


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.

Cliquez vers le haut

Cliquez vers le haut

ClickUp est l'une des plateformes de productivité les mieux notées pour toutes les entreprises. Les grandes entreprises comme Google, Booking.com, San Diego Padres et Uber utilisent toutes ClickUp pour augmenter la productivité sur le lieu de travail.

Visionneuse PDF-XChange 2.5.322.10

Visionneuse PDF-XChange 2.5.322.10

Le PDF est devenu un format couramment utilisé pour lire, créer et envoyer des documents texte. À son tour, le nombre de programmes utilisés pour ce type de documentation a augmenté. PDF-XChange Viewer fait partie d'un nombre croissant de visualiseurs PDF.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice propose une suite complète d'applications Office qui rivalisent avec Microsoft 365, notamment dans Excel, PowerPoint et Word. Il vous permet de gérer vos projets plus efficacement et prend en charge plusieurs formats de fichiers.

Télécharger iTaxviewer 1.8.7

Télécharger iTaxviewer 1.8.7

Le logiciel iTaxViewer est aujourd'hui le logiciel de lecture de fichiers XML le plus populaire. Ce logiciel est une application de lecture des déclarations fiscales électroniques au format XML de la Direction Générale des Impôts.

Lecteur PDF Nitro

Lecteur PDF Nitro

Nitro PDF Reader est un éditeur PDF pratique qui couvre toutes les tâches de base que la plupart des gens effectuent quotidiennement avec des documents PDF.

Lecteur Foxit 12

Lecteur Foxit 12

Foxit Reader est avant tout un lecteur PDF et vous permet également de créer des fichiers PDF, de les signer, de les modifier et d'ajouter des annotations. Il fonctionne sur les systèmes d'exploitation, il existe des plugins pour divers programmes du package Microsoft Office.