XL 2016 Différence entre les événements BeforeUpdate et Exit

dodineau

XLDnaute Junior
bonjour,
Sur un Textbox, quelqu'un peut-il m'expliquer la différence entre ces 2 événements, j'ai l'impression qu'ils sont identiques ?

Merci.
A+
 

Roblochon

XLDnaute Impliqué
Bonjour,

BeforeUpdate = Avant mise à jour de la valeur du contrôle
Exit = sortie du contrôle.

Utiliser la touche magique F1 sur beforeUpdate nous donne ceci:
BeforeUpdate, événement

Voir aussi Exemple S'applique à Spécificités

Survient avant la modification des données dans un contrôle.

Syntaxe

Private Sub
object_BeforeUpdate( ByVal Cancel As MSForms.ReturnBoolean)

La syntaxe de l'événement BeforeUpdate comprend les éléments suivants :

ÉlémentDescription
objectObjet valide.
CancelÉtat de gestion d'événement. False indique que le contrôle doit gérer l'événement (par défaut). True annule la mise à jour et indique que l'application doit gérer l'événement.


Remarques

L'événement BeforeUpdate se déclenche, que le contrôle soit dépendant ou non dépendant (c'est-à-dire, lorsque la propriété RowSource spécifie une source de données pour le contrôle). Cet événement se déclenche avant les événements AfterUpdate et Exit pour le contrôle actif (et avant l'événement Enter pour le contrôle qui reçoit le focus ).

Si vous affectez la valeur True à l'argument Cancel, le focus reste sur le contrôle et aucun des événements AfterUpdate et Exit ne se déclenche.

Cordialement
 

dodineau

XLDnaute Junior
J'avais lu cette aide sur les 2 fonctions mais je n'ai toujours pas différencié les 2.
Dans mes userform, que je mette l'un ou l'autre j'ai le même résultat.
 

Roblochon

XLDnaute Impliqué
Re,

Normal puisqu'il se suivent, d'abord beforeUpdate, AfterUpdate et enfin Exit.
L'avantage avec BeforeUpdate, c'est qu'on peut annuler la prise en compte des modifications en mettant le paramètre 'Cancel' de l'évènement à True.

Le moteur VBA émet les événements les un après les autres (Que vous les traitiez ou non), regarde dans votre code si vous avez un 'Gestionnaire d’événement' particulier pour l'événement émis (votre macro TextBox_BeforeUpdate par exemple) fait le traitement du gestionnaire puis passe à l’événement suivant dans la chaîne des événements.

L'aide Microsoft n'est pas très facile à lire, mais chaque phrase à son importance:
"Si vous affectez la valeur True à l'argument Cancel, le focus reste sur le contrôle et aucun des événements AfterUpdate et Exit ne se déclenche. "

Si vous n'avez pas besoin de cette possibilité d'annuler la mise à jour, conserver le gestionnaire d'évènement Exit.

Cordialement
 

Discussions similaires


Haut Bas