Problème togglebutton [Résolu]

Messages postés
11
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
2 mars 2007
- - Dernière réponse : cs_casy
Messages postés
7745
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
43
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 #

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
43
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
Messages postés
11
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
2 mars 2007
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
Messages postés
11
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
2 mars 2007
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
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
43
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.