Problème togglebutton [Résolu]

cs_slibar 11 Messages postés jeudi 19 décembre 2002Date d'inscription 2 mars 2007 Dernière intervention - 29 déc. 2006 à 14:33 - Dernière réponse : cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 déc. 2006 à 16:05
3
Merci
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 #

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 déc. 2006 à 14:52
0
Merci
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 #
Commenter la réponse de cs_casy
cs_slibar 11 Messages postés jeudi 19 décembre 2002Date d'inscription 2 mars 2007 Dernière intervention - 29 déc. 2006 à 15:10
0
Merci
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.
Commenter la réponse de cs_slibar
cs_slibar 11 Messages postés jeudi 19 décembre 2002Date d'inscription 2 mars 2007 Dernière intervention - 29 déc. 2006 à 16:42
0
Merci
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.
Commenter la réponse de cs_slibar
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 29 déc. 2006 à 16:47
0
Merci
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 #
Commenter la réponse de cs_casy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.