retour chekbox = Falsesi cell = ""

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
 

excalibur

XLDnaute Impliqué
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
 
Y

Yvon

Guest
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
 

excalibur

XLDnaute Impliqué
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
 

Hervé

XLDnaute Barbatruc
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
 
Y

Yvon

Guest
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
 

Discussions similaires

Réponses
4
Affichages
217

Statistiques des forums

Discussions
312 322
Messages
2 087 285
Membres
103 507
dernier inscrit
tapis23