Nommer des CheckBoxs

Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017 - 16 août 2007 à 13:42
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017 - 16 août 2007 à 17:00
Bonjour !

Ayant l'habitude de VBA, je me suis attelé à VB pour agrandir mon domaine de capacité, mais je rencontre maintenant un problème pour boucler sur des "Forms" styles "CheckBox".

Avant sous VBA, j'aurais tapé un truc du style :
Dim N as Integer
Dim CheckBoxN As CheckBox
For N = 1 to 50
         CheckBoxN = "CheckBox" & N
         If CheckBoxN.Visible=False Then                                     ' J'ai simplifié le Code mais s'il l'action est vraie, d'autres actions se produisent
                  CheckBoxN.CheckState= CheckState.Unchecked   'notamment que les Checkeds mis en italique disparaissent le soir              
                  CheckBoxN.Visible=True                                          ' et les unChecked soient le lendemain en 1° position
         End If
1:Next N

Malheureusement, VB (contrairement à VBA) m'informe qu' "Une valeur de type 'String' ne peut pas être convertie en 'System.Windows.Forms.CheckBox'"
J'ai vu que l'on pouvait avoir recours à des fonctions telles "CString" ou "ToObject",... et en ai essayé plusieurs sans succès !

Par contre il est important que je conserve ma boucle "For" et "
CheckBoxN = "CheckBox" & N" et pas que j'ai recours à une "bidouille" !

Si quelqu'un pouvait me donner la solution...
Merci...

11 réponses

Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 13:47
Désolé pour la mise en Page, je sais pas trop ce qui c'est passé...
Domage que l'on ne puisse pas modifier nos posts...
0
cs_Chatbour Messages postés 764 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 6 septembre 2010 19
16 août 2007 à 14:50
Salut,

Pardonnez moi j'ai pas beaucoup compris ce que vous voulez faire : Nommer des CheckBox existant ? ou bien les créer par clonage ? parlant pas du soir et du lendemain..
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 15:16
Nommer des CheckBox Existants :
CheckBox1, CheckBox2,....
et les appeler grâce à CheckBoxN qui a pour valeur 1, 2,... (Cf mon code en bleu)
0
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
16 août 2007 à 15:44
Vouich, alors, je te conseilles d'essayer un truc :

tu fais "copier" ton checkbox et "coller" (dans le même useform), et là, dans VB, il te demande si tu veux créer une liste de l'objet, tu réponds "oui".

Tu crées ainsi une liste de checkbox, qu'il te suffira d'appeler en faisant :
checkbox(N).Visible = true
ou bien :
checkbox(N).CheckState = ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 15:58
etniqs : j'ai VB 2007 Express et quand je fais copier/coller (ce que j'avais fait pour les créer), il ne me propose rien et étant un Newbee en VB (et pas VBA) comme puis-je faire autrement ?
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 16:11
et comment puis-je définir une collection (si c'est la même chose que la liste dont tu parles) sachant que le nombre de mes CheckBox est variable ?
J'ai essayé :
For each Ctrl in System.Windows.Forms  et ça marche pas ... je ne trouve rien avec leur aide intégrée (ou je suis nul ou c'est une cata)...
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 16:20
j'essaie dans Controls et pas System.Windows.Forms.... on va voir
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 16:35
je vois pas avec ma méthode (la tienne je n'y suis toujours pas arrivé) comment obtenir à partir de la collection crée "manuellement" quelquechose du style checkbox(N), comme toi...
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 16:52
En Fait si ça intéresse quelqu'un voilà comment j'ai procédé :








         Dim
Ctrl

As
Control
         For
Each Ctrl
In Controls
                  

For
N = 1

To
Controls.Count
                           

If
  N < 10

Then
                                    
Ctrl.Name =

"CheckBox0"
& N
                           

Else
: Ctrl.Name =

"CheckBox"
& N
                           

End



If
                  
Next
N
         Next Ctrl
0
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
16 août 2007 à 16:52
oups, alors là, je vois pas sous VB 2007.

mais tu appelerais le control numéro N de ta collection en faisant :

macollection(N).moncontrol.CheckState = ...
0
Scoubi7 Messages postés 88 Date d'inscription vendredi 16 janvier 2004 Statut Membre Dernière intervention 22 février 2017
16 août 2007 à 17:00
C'est bête que ta technique je ne sache pas la faire fonctionner sous VB 2005 (et pas 2007, j'ai dit n'importe quoi), elle a l'air plus simple...
Et merci pour ton tuyau macollection(N), mais ma technique postée juste avant me semble plus simple...
Encore merci !
0
Rejoignez-nous