Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

comment indexer des checkbox ??

jarc76

XLDnaute Nouveau
Salut a tous ,

voilà mon probleme : sur une feuille , j'ai des check box , plein de checkbox en fait : 650 je crois en tout .....

Bref, je les ai appelé de facon structurée (coche_1_1, coche_1_2, etc ...) en pensant pouvoir les traiter dans mon programme en les indexant .... MAis en fait je peux pas ....

pour forcer l'etat du checkbox, j'ecris la commande suivante qui marche très bien :

coche_1_1.value= true

a partir de cette syntaxe, j'aurais besoin de pouvoir traiter une instruction de ce type : coche_1_.value= true
où "i" serait la variable qui m'indexerait mes checkbox...

Dans l'esprit, si i=2 alors ca donnerait coche_1_2.value = true


je sais pas trop si j'ai été très clair ....

Merci de votre aide .....
 

Catrice

XLDnaute Barbatruc
Re : comment indexer des checkbox ??

Bonjour,

Il faut creuser d'avantage mais une piste pour démarrer ...
Sub test()
For Each X In UserForm1.Controls
If Left(X.Name, Len(X.Name) - 1) = "OptionButton" Then MsgBox X.Name
Next
End Sub
 

jarc76

XLDnaute Nouveau
Re : comment indexer des checkbox ??

Merci catrice ( sans jeu de mot ....) de ta proposition .....

j'ai trouvé sur le forum une solution idéale pour mon cas :

For i = 1 To 40
ActiveSheet.OLEObjects("Coche_1_" & i).Object.Value = true
Next i

cette instruction me permet bien d'indexer mes checkbox pour faire mes forçages ou mes tests .... trop classe le forum !!!!
 

Catrice

XLDnaute Barbatruc
Re : comment indexer des checkbox ??

Cool,

Tu peux aussi faire ça si tu en rajoute ou en enleve, tu n'es pas géné par le 1 to 40 ...
Et tu peux faire des "groupes" d'objets en fonction des noms

Sub test()
For Each X In ActiveSheet.OLEObjects
If Left(X.Name, Len(X.Name) - 1) = "Coche_1_" Then X.Object.Value = True
Next
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…