une confirmation si une valeur est changé dans un userform

pasglop

XLDnaute Nouveau
Bonsoir à tous,

Une petite question, je voudrai bien demander une validation sur un changement de valeur ...

J’ai un grand nombre de calculs qui découlent d'une 10ene variables
Ces variables sont importantes, on les modifies par le biais d'un userform

Je voudrais que si qqun change une de ces valeurs (dans le userform) une fenetre s'ouvre (msgbox ou userform) apparaisse pour demander la confirmation du changement
-si on met oui les valeurs sont changées
-si on met non aucune valeurs ne changent

-si on ne change pas de valeur.. Pas de demande de confirmation
-si on change la valeur par la même valeur.. Pas de demande de confirmation

Je joins un exemple simple

Si un géni du VBA pouvais ajouter ces quelques lignes de code .. se serai super

Merci d’avance
Yves
 

Pièces jointes

  • exemple.xls
    27.5 KB · Affichages: 87
  • exemple.xls
    27.5 KB · Affichages: 89
  • exemple.xls
    27.5 KB · Affichages: 90

alexga78

XLDnaute Occasionnel
Re : une confirmation si une valeur est changé dans un userform

Bonsoi Pasglob,
un petit essai vite fait...
dis moi si ça convient pour améliorer
bonne soirée
 

Pièces jointes

  • exemple(1).zip
    15.4 KB · Affichages: 43
  • exemple(1).zip
    15.4 KB · Affichages: 51
  • exemple(1).zip
    15.4 KB · Affichages: 47

Papou-net

XLDnaute Barbatruc
Re : une confirmation si une valeur est changé dans un userform

Bonsoir pasglop,

Si j'ai bien compris ta question, remplaces les événements Change de tes TextBox par les suivants :

Code:
Private Sub TextBox1_AfterUpdate()
If Not TextBox1.Value = Sheets("Feuil1").Range("A1") Then
  rep = MsgBox("Confirmez-vous le changement", vbYesNo + vbQuestion, "Changement")
End If
Select Case rep
  Case Is = vbNo
      Exit Sub
    Case Is = vbYes
      Sheets("Feuil1").Range("A1") = TextBox1.Value
End Select

End Sub

Private Sub TextBox2_AfterUpdate()
If Not TextBox2.Value = Sheets("Feuil1").Range("A2") Then
  rep = MsgBox("Confirmez-vous le changement", vbYesNo + vbQuestion, "Changement")
End If
Select Case rep
  Case Is = vbNo
      Exit Sub
    Case Is = vbYes
      Sheets("Feuil1").Range("B1") = TextBox2.Value
End Select

End Sub

Mais personnellement, je ne comprends pas ta démarche : pourquoi ne pas enregistrer les valeurs avec le bouton Valider ou annuler les changements avec un bouton Annuler (ce qui est plus dans la philosophie habituelle) ?

Quoiqu'il en soit, j'espère avoir répondu à ta demande.

Cordialement.
 

pasglop

XLDnaute Nouveau
Re : une confirmation si une valeur est changé dans un userform

Merci Papou-net et alexga78 pour ces réponses

Peut être que j'ai mal exécuté quelque chose mais dans les deux cas j'ai le même tout petit problème ...

Quand je mets "non" pour que la valeur ne soit pas modifiée, et que je ferme le userform à l'ouverture suivante c'est la valeur rentrée précédemment que je n’avais pas validé qui s'affiche!
Et aussi si je remplace le nombre par lui même on me demande quand même de valider la modification ...

En définitif les cellules avec les valeurs ne seront plus visible, on ne verra que le userform pour accéder au différents paramètres..

Je demande une validation sur le changement + ou - pour dissuader quelqu'un qui ne saurait pas se qu'il fait.. (je sais c’est subjectif .. mais bon …)

Merci d’avance ….
yves
 

ledzepfred

XLDnaute Impliqué
Re : une confirmation si une valeur est changé dans un userform

PAS GLOP bonsoir,

papou-net et alexga (que je salue) ont été plus rapides. Je te joins quand même ma solution qui est très proche de papou-net et alexga

Par ailleurs pour comparer les valeurs de textbox avec tes cellules, il faut que les données soient de même type or par défaut un textbox c'est du texte et non pas une valeur numérique d'où l'utilisation de la fonction CCur qui permet de convertir du texte en numérique ce qui règle le pb de la validation. Ai également ajouté un message en cas de saisie d'une valeur autre que numérique pour tes deux textbox.
voir fichier joint

a+
 

Pièces jointes

  • exemple(1).xls
    38 KB · Affichages: 61
  • exemple(1).xls
    38 KB · Affichages: 60
  • exemple(1).xls
    38 KB · Affichages: 62
Dernière édition:

pasglop

XLDnaute Nouveau
Re : une confirmation si une valeur est changé dans un userform

Bonsoir ledzepfred

Après essai

Tout est bon au niveau de la démarche..
Mais quand je valide un changement de nombre, il ne se modifie pas dans la cellule ?
Cela fonctionne t’il chez toi ?

Merci
Yves
 

ledzepfred

XLDnaute Impliqué
Re : une confirmation si une valeur est changé dans un userform

RE..

si après confirmation tu veux que les cellules A1 et B1 prennent les valeurs des textbox1 et 2, il te suffit d'écrire dans le code du bouton valider

Code:
Range("A1").value=Textbox1.Value
Range("B1").value=Textbox2.Value

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 448
Messages
2 088 500
Membres
103 871
dernier inscrit
julienleburton