Arrêter un clignotement de texte
Dans l’article Faire clignoter un texte, il était question de faire clignoter un texte sur un formulaire, ou de lui changer de couleur. Tout ça à l’aide de l’événement
Sur minuterie
(Form_Timer
) du formulaire. On m’a posé la question suivante : « comment arrêter l’effet de clignotement lorsqu’on quitte le formulaire » ? Voici la solution..
Principe
Le principe repose sur deux choses :
- Pour annuler l’effet, il faut annuler la minuterie, ce qui équivaut à définir à 0 son « intervalle minuterie » (la durée en millisecondes entre deux déclenchements du code VBA).
- Le meilleur moment pour faire ce réglage est sans doute l’événement
Sur désactivé
du formulaire, qui se produit lorsque le formulaire passe en second plan (par exemple parce qu’on vient d’ouvrir un autre formulaire). Il est intéressant d’utiliser l’événement inverse –Sur activé
– pour remettre en place le clignotement quand on revient sur le formulaire de départ.
Le code VBA
Le code VBA n’est pas très compliqué cette fois :
- Faites apparaître les propriétés de votre formulaire (celui qui gère une minuterie), onglet Événement.
- Cliquez sur les points de suspension à droite de l’événement
Sur désactivé
, et choisissez Générateur de code. - Faites en sorte que votre événement ressemble à ça :
1 2 3 |
Private Sub Form_Deactivate() Me.TimerInterval = 0 End Sub |
Pour que le clignotement reprenne, faites également ceci :
- Faites apparaître les propriétés de votre formulaire (celui qui gère une minuterie), onglet Événement.
- Cliquez sur les points de suspension à droite de l’événement
Sur activé
, et choisissez Générateur de code. - Faites en sorte que votre événement ressemble à ça (
2000
étant la durée de la minuterie, en millisecondes) :
1 2 3 |
Private Sub Form_Activate() Me.TimerInterval = 2000 End Sub |
Pour tester, ouvrez le formulaire avec minuterie, attendez que l’animation se déclenche plusieurs fois, puis ouvrez un autre formulaire…