Problème togglebutton

Résolu
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007 - 29 déc. 2006 à 14:33
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 - 29 déc. 2006 à 16:47
Bonjour,
Je rencontre un problème (débile je vous l'accorde) sur lequel je jette l'éponge car plus d'idée.
J'ai plusieurs togglebutton sur une feuille excel et je voudrai lors du lancement d'un processus les rendre tous invisible.
Il y en a une trentaine donc j'aimerai integrer cela dans une boucle.

J'ai essayé en structurant le nom des togglebuttons mais celà ne fonctionne pas.
(evidement mais exemples sont faux et c'est la le problème)

ex: j'ai 2 togglebuttons -> toggle1DR, toggle2DR sur la feuille.
i est un compteur et DR un id utilisateur récupérer dans un userform.

dim temp
dim user as string
dim toggle as object

temp = "toggle" & i & user
set toggle = temp
toggle.visible = false

**** incompatibilité d'objet, on est daccord mais je sais pas comment faire ***

Autre méthode à laquel j'avais penser
dim toggle as control

For Each Toggle In togglebutton
        toggle.Visible = False
    End If
Next

En fait dans le In j'ai tout essayer mais rien ne passe (activesheet.togglebutton ; controls ; en mettant sheets et en déclarent toggle as togglebutton ...)

Plus d'idées

Merci d'avance pour l'aide que vous pourrez éventuellement m'apporter.
A voir également:

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 déc. 2006 à 16:05
Arfff dsl, par feuille je m'étais imaginé que tu parlais d'une UserForm, je sais pas pourquoi.

Pour une feuille de calcul, il faut agir un peu différemment.

Avec ton exemple, ça pourrait donner quelque chose comme ça :

For i = 1 To Ton_Nombre_De_Toggle
    OLEObjects("Toggle" & i & "DR").Visible = False
Next

En espérant que ce soit bon cette fois-ci

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 déc. 2006 à 14:52
Dim toto As Control
For Each toto In Me.Controls
    If TypeOf toto Is ToggleButton Then
        toto.Visible = False
    End If
Next



par exemple

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007
29 déc. 2006 à 15:10
Merci pour ta réponse mais j'ai encore un petit soucis...
J'ai une erreur de compilation sur le "Me.controls" -> Membre de méthode ou de données introuvable.
0
cs_slibar Messages postés 11 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 2 mars 2007
29 déc. 2006 à 16:42
Héhé, j'étais sur que cela venait de la, si je comprend bien Me.controls renvoyait à l'objet button qui lancait la macro et non à ma feuille ?
En tout cas j'ai adapté ce que tu m'as envoyé et cela fonctionne, par contre c'est vrai que c'est moins pratique qu'avec un for each.

Encore merci de t'être pencher sur mon problème.
0

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

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 déc. 2006 à 16:47
Me fait référence à l'UserForm sur laquelle tu met ton code.
Controls est la collection de tous les controles présents sur l'UserForm.

Mais ici, tu n'as pas de UserForm.

Sur une feuille de calcul, la collection des controles est représentée par OLEObjects, et avec OLEObjects, je n'ai pas réussi à faire une boucle For Each.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous