retour chekbox = Falsesi cell = ""

  • Initiateur de la discussion Initiateur de la discussion Yvon
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yvon

Guest
Bonsoir à tous,

J'ai un USF avec des checkbox, je souhaiterai que lorsque je rappelle le USF, il me dise quelle Check box avait une valeur false lors de la première saisie.

J'ai essayé dans initalize ce code :

If CheckBox1.Value = False Then sheets(3).Range('AD71').Value = ''
et celui la aussi
If sheets(3).Range('AD71').Value = '' Then CheckBox1.Value = False

Par avance merci

a++
Yvon
 
bonjour yvon le forum essaie ce code Option Explicit
Private Sub UserForm_Activate()
If Range('e1').Value = 1 Then MsgBox 'message1'
If Range('e2').Value = 1 Then MsgBox 'message2'
End Sub
Private Sub UserForm_Terminate()
If CheckBox1 = False Then Range('e1').Value = '1'
If CheckBox2 = False Then Range('e2').Value = '1'
End Sub
attention si tu as beaucoup de checkbox il faut peut etre t orinte sur un code de ce style a adapter Dim i As Byte
For i = 1 To 10
If Controls('checkbox' & i) = False Then MsgBox 'une des checkbox non renseignees': Exit Sub
Next
salutations
 
Bonjour Excalibur, le forum,

Merci de ton aide

Si j'ai bien tout compris je repique cette partie du code dans mon USF
ce qui donne :

Private Sub UserForm_Terminate()
If CheckBox1 = False Then sheets(3).Range('AD71').Value = ''
If CheckBox2 = False Then sheets(3).Range('AD72').Value = ''
End Sub

Ce code à pour effet de vider les cellules (AD71 et AD72), de la feuille 3, ce qui n'est pas le but recherché.

Peut être me suis je mal exprimé, le but : quand l'utilisateur à la création, a valider une checkbox celle ci affiche une coche, l'utilisateur dois pouvoir retourner sur le USF, afin d'effectuer d'éventuelles modifs, pour savoir ce qui a été sélectionné la première fois, les checbox doivent se réafficher avec leur coches.

Si ce n'est pas parfaitement clair dites le moi

a++
Yvon
 
rebonjour yvon le forum si j ai bien compris Option Explicit
Private Sub UserForm_Activate()
If Sheets(3).Range('ad71').Value = 1 Then CheckBox1 = True Else: CheckBox1 = False
If Sheets(3).Range('ad72').Value = 1 Then CheckBox2 = True Else: CheckBox2 = False
End Sub
Private Sub UserForm_Terminate()
If CheckBox1 = False Then Sheets(3).Range('ad71').Value = '' Else: Range('ad71').Value = 1
If CheckBox2 = False Then Sheets(3).Range('ad72').Value = '' Else: Range('ad72').Value = 1
End Sub'salutations
 
Bonjour yvon , excalibur 🙂

Juste comme ca en passant, on n'est pas obligé de passer par une condition pour retourner l'etat d'une checkbox :

Range('a1') = CheckBox1

suffit amplement, le contraire est aussi vrai : CheckBox1 = Range('a1') dans la mesure ou un 0,1,vrai,faux se trouvent en A1 bien sur

voilà

salut
 
Bonjour Excalibur, Hervé,

Merci à tous les deux, cela marche nickel.

Je n'y arrivai pas parce que la valeur de la cellule est renvoyée par une textbox via la checbox, ce qui complique la chose:

Je met le code final, pour ceux à qui cela ferai avancer le chimili...

Private Sub UserForm_Activate()

If sheets(3).Range('ad71').Value = TextBox1.Value Then CheckBox1 = True Else: CheckBox1 = False

Private Sub UserForm_Terminate()

If CheckBox1 = False Then sheets(3).Range('ad71').Value = '' Else: sheets(3).Range('ad71').Value = TextBox1.Value

Bonne soirée à vous deux
a++
Yvon
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
2
Affichages
411
Retour