simplification multiples checkboxs

koko_spv89

XLDnaute Occasionnel
Bjr à tous,

J'ai le code suivant :


Code:
Private Sub Worksheet_change(ByVal Target As Range)
If Target.Address = "$I$3" Then
Select Case Target
Case 1
 CheckBox1 = True
 CheckBox2 = True
 CheckBox3 = True
 CheckBox4 = True
 CheckBox5 = True
 CheckBox6 = True
 CheckBox7 = True
 CheckBox8 = True
 CheckBox9 = True
 CheckBox10 = True
 CheckBox11 = True

Je voudrais le simplifier... j'ai essayé un truc comme ça mais je crois que je pars mal... je débute ds VB alors j'ai du mal :

Code:
Private Sub Worksheet_change(ByVal Target As Range)
Dim VAR As Byte, CBX As OLEObject
For Each CBX In Worksheets("schéma").OLEObjects
If Left(CBX.Name, 8) = "CheckBox" Then
 If Target.Address = "$I$3" Then
  Select Case Target
   Case 1
    For VAR = 1 To 11
    ("CBX" & VAR).Object.Value = True

Quelqu'un pourrait m'aider?

@+
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : simplification multiples checkboxs

Bonjour Koko, bonjour le forum,

Essaie comme ça :

Code:
Private Sub Worksheet_change(ByVal Target As Range)
If Target.Address = "$I$3" Then
Select Case Target
Case 1
For x = 1 to 11
Me.Controls("CheckBox" & x).Value = True
Next x
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : simplification multiples checkboxs

Bonjour Koko, bonjour le forum,

J'ai bêtement pensé que les CheckBoxes étaient dans une userForm et le code que je t'ai donné corresponds à ce cas là. Désolé.
 

koko_spv89

XLDnaute Occasionnel
Re : simplification multiples checkboxs

Merci Robert...

Ca fonctionne pas tout à fait par contre car qd je mets X = 1 to 11 y'a que les checboxs 1 à 9 qui se cochent c'est bizarre....
Quelqu'un serait pourquoi?

@+

EDITO : Merci Staple aussi... j'ai pas compris grand chose aux pages Wiki de MicheXld, c'est encore un peu compliqué pour moi:eek:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : simplification multiples checkboxs

Re

Code:
Sub pour_Robert_en_Hommage()
Dim x As Byte
For x = 1 To Worksheets(1).OLEObjects.Count
Worksheets(1).OLEObjects(x).Object.Value = True
Next
End Sub

Mieux vaut qu'il n'y ait que des CheckBox dans la feuille.
 

koko_spv89

XLDnaute Occasionnel
Re : simplification multiples checkboxs

RE

En fait je viens de voir que ce n'est pas du tout les bonnes checkbox qui se cochent... j'ai une 30n de checkbox sur mon fichier....elles s'appellent toutes checkbox1, checkbox2, checkbox3, ....

Je vais vous faire un petit fichier exemple pr que vous compreniez mieux!

à tte
 

Pierrot93

XLDnaute Barbatruc
Re : simplification multiples checkboxs

Bonjour Koko, Robert, Jean-Marie

une autre solution, si j'ai bien compris, code à placer dans le module de la feuille où se trouvent les objets :

Code:
Dim x As OLEObject
For Each x In Me.OLEObjects
    If TypeOf x.Object Is MSForms.CheckBox Then x.Object.Value = True
Next x

bon après midi
@+
 

Staple1600

XLDnaute Barbatruc
Re : simplification multiples checkboxs

Re


Arggh le tigre a encore été aussi rapide que l'éclair


Code:
Sub pour_Robert_en_Hommage_II()
Dim x As Byte
For x = 1 To Worksheets(1).OLEObjects.Count
If Worksheets(1).OLEObjects(x).Name Like "CheckBox*" Then
Worksheets(1).OLEObjects(x).Object.Value = True
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso