OVH Cloud OVH Cloud

empecher le déclenchement d'un evénement

2 réponses
Avatar
Xavier POWAGA
bonjour à tous,
voila mon petit programme vba contient dans une form, un objet Text qui
déclenche l'Evénement Change lorsque l'utilisateur y inscrit quelque chose .
Jusque là no problémo.

par contre mon programme peut mettre à jour lui meme le text de cet objet et
je ne voudrais pas que cela déclenche l'évenement associé (je tiens à faire
le distingo entre une modif auto et une modif manu)

j'ai bien essayé d'insérer le code Application.EnableEvents = False avant
mais mon evénement se déclenche quand même.

avez vous une idée

merci

2 réponses

Avatar
Pierre Fauconnier
Bonjour

En début du module de ton userform, après les éventuelles lignes Option...
tu mets ceci

Public Modifie_Par_Programme As Boolean

Dans la macro évènementielle Change de ton textbox, tu mets

Private Sub TextBox1_Change()
If Not Modifie_Par_Programme Then MsgBox "Modifié par l'utilisateur"
End Sub

Lorsque ton programme modifie la valeur tu textbox, tu utilises ceci

Sub Modif_TextBox()
UserForm1.Modifie_Par_Programme = True
UserForm1.TextBox1 = "Bonjour "
UserForm1.Modifie_Par_Programme = False
End Sub

Je pense que cela est suffisamment clair que pour que je ne détaille pas le
fonctionnement... Il faut bien sûr modifier le code en fonction du tien

Ok?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Xavier POWAGA" a écrit dans le message de news:
441d40b8$0$13221$
bonjour à tous,
voila mon petit programme vba contient dans une form, un objet Text qui
déclenche l'Evénement Change lorsque l'utilisateur y inscrit quelque chose
. Jusque là no problémo.

par contre mon programme peut mettre à jour lui meme le text de cet objet
et je ne voudrais pas que cela déclenche l'évenement associé (je tiens à
faire le distingo entre une modif auto et une modif manu)

j'ai bien essayé d'insérer le code Application.EnableEvents = False avant
mais mon evénement se déclenche quand même.

avez vous une idée

merci



Avatar
Xavier POWAGA
pas bete du tout. je vais faire comme ça
merci pierre
"Pierre Fauconnier" a écrit dans le
message de news:
Bonjour

En début du module de ton userform, après les éventuelles lignes Option...
tu mets ceci

Public Modifie_Par_Programme As Boolean

Dans la macro évènementielle Change de ton textbox, tu mets

Private Sub TextBox1_Change()
If Not Modifie_Par_Programme Then MsgBox "Modifié par l'utilisateur"
End Sub

Lorsque ton programme modifie la valeur tu textbox, tu utilises ceci

Sub Modif_TextBox()
UserForm1.Modifie_Par_Programme = True
UserForm1.TextBox1 = "Bonjour "
UserForm1.Modifie_Par_Programme = False
End Sub

Je pense que cela est suffisamment clair que pour que je ne détaille pas
le fonctionnement... Il faut bien sûr modifier le code en fonction du tien

Ok?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Xavier POWAGA" a écrit dans le message de news:
441d40b8$0$13221$
bonjour à tous,
voila mon petit programme vba contient dans une form, un objet Text qui
déclenche l'Evénement Change lorsque l'utilisateur y inscrit quelque
chose . Jusque là no problémo.

par contre mon programme peut mettre à jour lui meme le text de cet objet
et je ne voudrais pas que cela déclenche l'évenement associé (je tiens à
faire le distingo entre une modif auto et une modif manu)

j'ai bien essayé d'insérer le code Application.EnableEvents = False avant
mais mon evénement se déclenche quand même.

avez vous une idée

merci