Bonjour à toutes et tous,
J'ai un souci (je ne comprends pas la raison).
J'explique:
J'ai crée un userform qui contient un "texte box" et un bouton "Sauve" (exemple pour bien comprendre).
Lorsque je l’appelle, dans l'initialisation de ce formulaire, je rempli le texte boxe (donnée venant d'une feuille).
Ce que j'aimerais, est, quand je clique sur le bouton "Sauve", que cela enregistre UNIQUEMENT quand le contenu du texte box à CHANGE.
Pour ce faire, j'ai deux drapeaux (boolean):
Je les ais déclarés dans le module : module1 dans la partie déclarative.
fgInit : Celui-ci est mis à "vrais" quand j'initialise le formulaire. Cela empêche que l’événement "After-Update" déclenche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Public fgSave As Boolean Public fgInit As Boolean
Une fois l'initialisation terminé, je le met sur "faux".
fgSave : A la fin de l'initialisation il est mis à "faux". Quand on modifie le contenu du texte box, il ce mets sur "vrais".
Lorsque j'exécute le code en "pas à pas", tout fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub T_Text_AfterUpdate() If Not fgInit Then fgSave = True ' J'ai placé un break point ici End If End Sub
Lorsque je le laisse fonctionner tous seul sans toucher à quoi que se soit, le programme s'arrête au break point. Ce n'est pas logique !...
Comment se fait il que cet événement ce déclenche ?
Comment l'éviter?
J'en perds mon latin. Quelqu'un aurait-il une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub UserForm_Initialize() Dim feuille as Worksheet Set feuille = ActiveWorkbook.Worksheets("Sheet1") fgInit = True With Nom_UserForm If Numero_ID > 0 Then .T_Text.text = feuille.Cells(Numero_ID, 1) End If End With fgInit = False fgSave = False End Sub Private Sub BT_Save_Click() If Not fgSave Then MsgBox "No change", vbInformation + vbOKOnly, "Remark" fgSave = False End If End Sub
Merci d'avance de votre aide
Bonne après-midi
André
Partager