userform : detecter changement de valeur

Pierwak

XLDnaute Occasionnel
Bonjour a tous,
Je reviens vers vous pour vous demander une idée. En effet, j'aimerai pouvoir signaler aux utilisateurs de mon formulaire qu'ils n'ont pas modifié une valeur (l'usf est ouvert le plus souvent pour cela). cette valeur est contenue dans une textbox. je ne veux pas que cela empeche la validation, juste leur afficher un message pour leur demander si ils sont surs...
afficher le message, pas de souci c'est juste que je ne vois pas comment tester si ils ont changé ou non la valeur dans le textbox concerné.
merci d'avance.
 

fanfan38

XLDnaute Accro
Re : userform : detecter changement de valeur

Bonjour
Si tu connais la valeur précédente de la textbox
mavar=textbox1.value avant de lancer le formulaire...
Et à la validation:
if textbox1.value=mavar then rep=msgbox("Etes vous sur")

Mais ça aurait beaucoup plus facile (et précis) de te répondre avec un fichier exemple...

A+ François
 

skoobi

XLDnaute Barbatruc
Re : userform : detecter changement de valeur

Bonjour,

afficher le message, pas de souci c'est juste que je ne vois pas comment tester si ils ont changé ou non la valeur dans le textbox concerné.
Est-ce que le textbox a une valeur à l'initialisation de l'USF?
Si c'est le cas, tu peux affecter la valeur d'origine à une variable pour ensuite vérifier si cette valeur à changer comme ceci:

..........
defaut = TextBox1.Value
.............
..................

et comme condition tu mets:

If TextBox1.Value = defaut Then
'ton message
End If
 

ftho

XLDnaute Occasionnel
Re : userform : detecter changement de valeur

Bonjour,

1. Déclarer une variable Public
Code:
Public Val As String
2. A l'initialisation du UserForm on charge la variable avec le contenu initial de la TextBox
Code:
Val = Me.TextBox1.Value
3. Lors de la validation des données via l'évènement Click d'un bouton par exemple, on vérifie si le contenu de la TextBox est toujours identique à sa valeur initiale à mettre en début de code)
Code:
If Val = Me.TexBox1.Value Then
    If MsgBox("Message d'avertissement si la TextBox est inchangée" & Chr(10) _
        & "Voulez-vous poursuivre ?", vbYesNo) = vbNo Then Exit Sub
End If
 

Pierwak

XLDnaute Occasionnel
Re : userform : detecter changement de valeur

Merci a vous 3 pour ces réponses. je vais donc utiliser cette astuce de stocker la valeur au démarrage et de comparer ensuite. Encore une fois ce forum a réponse a tout !!! Merci !
 

RENAUDER

XLDnaute Accro
Re : userform : detecter changement de valeur

Bonjour,

Un exemple
Code:
Dim MyValeur As String
Private Sub CommandButton1_Click()
    If MyValeur = Me.TextBox1.Text Then
        Resp = MsgBox("Vous n'avez pas changé la valeur ? " & vbCr & "Désirez-vous continuer ?", vbInformation + vbYesNo, "Contrôle de sasiie")
        If Resp = 7 Then
            Me.TextBox1.SetFocus
           Exit Sub
        Else
        MsgBox "Vous avez choisi de continuer sans changer la valeur"
        Unload Me
        End If
    End If
    Unload Me
End Sub
 
Private Sub UserForm_Activate()
    MyValeur = Me.TextBox1.Text
End Sub
 

Discussions similaires


Haut Bas