Faire passer "CheckBox.Value" de "True à False" ou inverse depuis un module de Classe

néné06

XLDnaute Accro
Bonjour le Forum,

J'ai un USF avec 31 "CheckBox" qui ont "Value = True".
Si je click sur le premier "CheckBox1" , il va passer à "False"
Cette opération passe par un module de Classe.
Je voudrais que lors du changement de Value de "CheckBox1" , les 30 autres CheckBoxs qui sont à "True", passe à "False" et l'inverse, si le "CheckBox1" repasse à "True" , les 30 autres CheckBoxs qui sont à "False", passe à "True" ??

J'ai bien essayé divers codes mais sans réussir.

Les explications figures dans la pièce-jointe.

Merci pour l'aide !

René
 

Pièces jointes

  • Class1.xlsm
    41.3 KB · Affichages: 51
  • Class1.xlsm
    41.3 KB · Affichages: 48

Si...

XLDnaute Barbatruc
Re : Faire passer "CheckBox.Value" de "True à False" ou inverse depuis un module de C

Bonjour le Forum,

J'ai un USF avec 31 "CheckBox" qui ont "Value = True".
Si je click sur le premier "CheckBox1" , il va passer à "False"
Cette opération passe par un module de Classe. ???
Je voudrais que lors du changement de Value de "CheckBox1" , les 30 autres CheckBoxs qui sont à "True", passe à "False" et l'inverse, si le "CheckBox1" repasse à "True" , les 30 autres CheckBoxs qui sont à "False", passe à "True" ??
Pour cela il suffit de

Code:
Dim i As Byte
Public Sub UserForm_Activate()
  For i = 1 To 31: Me("Checkbox" & i) = 1: Next  'garder ou pas
End Sub
Private Sub CheckBox1_Click()
  For i = 2 To 31: Me("Checkbox" & i) = CheckBox1: Next
End Sub

Le module de classe ne sera intéressant que si chaque case à cocher induit une action différente d'autres cases.
 

laetitia90

XLDnaute Barbatruc
Re : Faire passer "CheckBox.Value" de "True à False" ou inverse depuis un module de C

bonjour néné :) SI :)

dans la mesure autre action ???

Code:
Public WithEvents CKB As MSForms.CheckBox, i As Byte
Private Sub CKB_Click()
With UF_Fiche
If CKB.Name = "CheckBox1" Then _
For i = 2 To 31: .Controls("Checkbox" & i) = .CheckBox1: Next i
End With
End Sub
 

néné06

XLDnaute Accro
Re : Faire passer "CheckBox.Value" de "True à False" ou inverse depuis un module de C

Bonjour Si... et merci pour ta réponse!

Dans ce programme, je dois utiliser un module de classe car en vérité, j'ai un USF avec 8 Frames et environ 190 Checkboxs.
Lors d'un click de CheckBox, une action s'effectue sur les autres CheckBoxs de la frame.

Par exemple:

Si je click le CheckBox1 (Tous), en fonction de son état, il me reportera le même état sur les 30 autres CheckBoxs de la Frame.
Si CheckBox1 passe à True par un click, tous les CheckBoxs de la Frame vont passer à True.
Si je click sur CheckBox2 qui est à True et qui passe à False, le CheckBox1 doit passer à False car tous les autres CheckBoxs ne sont pas à True .
Les autres CheckBoxs restent a True sauf CheckBox2 et CheckBox1.
Si je reclick sur CheckBox2 qui est à False et qui passe à True, le CheckBox1 doit passer à true car tous les CheckBoxs sont a True .
A chaque click de CheckBox, pour positionné le CheckBox1, je dois vérifier que tous les autres CheckBox sont à True ou False.

Idem sur chaque Frame.

Le problème est le suivant:

Lorsque je click un CheckBox dans USF, le programme passe par le module de classe lors du changement d'un Checkbox.
Le module de Classe sait quel CheckBox à été activé par CKB.Name et à ce moment, il faudrait que, dans la suite de la procédure "Change" du module de Classe,les autres CheckBoxs concernés de la Frame change d'état.

C'est un peu dur à expliquer mais...

D'avance merci!

René
 

néné06

XLDnaute Accro
Re : Faire passer "CheckBox.Value" de "True à False" ou inverse depuis un module de C

Re,

Bravo Laeticia!!!:D

Tu m'as donnée la solution que je recopie en P_J.

With UF_Fiche
For i = 2 To 31: .Controls("Checkbox" & i) = .CheckBox1: Next i
End With

Un GRAND MERCI!!!!:D

René
 

Pièces jointes

  • Class1.xlsm
    42.7 KB · Affichages: 37
  • Class1.xlsm
    42.7 KB · Affichages: 42

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 347
Membres
103 525
dernier inscrit
gbaipc