Désignation combobox

Résolu
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010 - 18 juil. 2007 à 11:08
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 18 juil. 2007 à 23:15
Bonjour tout le monde
Je galère en vb sur Excel pour appeler dans le code les différentes combobox que j'ai crée de façon répétitive, je m'explique : J'ai tout un tas de combobox portant le même nom au numéro près (diag31, diag32, ...) et je voudrais en activer ou désactiver certains groupes (par exemple activer le groupe 31-60 et désactiver le groupe 61-90). Avec la fonction enabled ça marche sauf que je suis obligé d'écrire une ligne pour chaque box, c'est très long et ça alourdie mon code!!! J'ai donc mis en place un compteur mais je n'arrive pas à renommer mes box avec (("diag" & I) ne marche pas). Quelqu'un a-t-il une solution pour moi svp?

12 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 juil. 2007 à 11:34
Tu as différentes possibilités selon le type de contrôles que tu utilises et où ils sont placés

ActiveSheet.OLEObjects("diag" & i)  << Barre d'outils Visual Basic sur feuille
ActiveSheet.Shapes("diag" & i)          << Barre d'outils Formulaire sur feuille
Me.Controls("diag" & i)                     << sur un UserForm

MPi
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 juil. 2007 à 11:11
Bonjour,

Ben voilà !
Puisque tu es maintenant dans la bonne section :
Controls est une collection.

Controls("text1") désigne donc, par exemple, la textbox Text1.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 juil. 2007 à 11:23
un groupe de controle ferait également l'affaire (voir propriété Index de tes combobox)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 juil. 2007 à 11:29
Bonjour RenField,

Hélàs, hélas !....
Regarde sous quoi il développe (il est maintenant dans la bonne section) ====>>> pas de groupes de contrôles indexés...
0

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

Posez votre question
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
18 juil. 2007 à 11:32
ça ne marche pas c'est peut-être parce que les boxs sont sur une page Excel et puis j'ai pas bien saisi l'histoire des collections, il faut en créer une?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 juil. 2007 à 11:39
Si ton contrôle est ailleurs que dans un userform, en effet, ce n'est pas la même chose.

Je ne connais pas VBA, mais j'essaierais quand même de voir avec

Sheet.controls ou WorkSheet.Controls ou Sheet("nom_de_ta_feuille").Controls
Qui sont peut-etre des collecxtions sous VBA.
Essaye pour voir ...on ne sait jamais.
0
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
18 juil. 2007 à 11:44
Sub Vérouillage()
    Dim I As Integer
    For I = 31 To 90
        OLEObjects("diag" & I).Enabled = False
    Next I
End sub

Merci tout le monde pour cette aide précieuse, ça marche nickel chrome sans vous j'étais fichu (je suis au boulot et je développe un progiciel). A bientôt
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 juil. 2007 à 11:45
Salut JMF,
Non, la collection Controls n'existe pas pour un objet "Feuille" (Activesheet, Worksheet, ...)

MPi
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 juil. 2007 à 11:50
Bonjour MPI,

et ceci alors ?
http://www.aspose.com/wiki/default.aspx/Aspose.Grid/ManagingCellControls.html
J'ai probablement lu trop vite...

>> nanardino : et si tu pensais à valider la réponse faite par MPI (afin qu'elle puisse servir un jour à d'autres) ? Ce serait une bonne idée...
0
nanardino64 Messages postés 131 Date d'inscription vendredi 18 août 2006 Statut Membre Dernière intervention 17 mars 2010
18 juil. 2007 à 11:55
Désolé c'est la première fois que je participe maintenant j'y penserai
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
18 juil. 2007 à 23:09
Salut JMF,

du site en question >> This topic discusses some important concepts about managing cell controls using the API of Aspose.Grid.Desktop

Et les exemples de code sont du .Net et du C# ... (?)

Mais je reconfirme, même en utilisant F2, Controls n'est reconnu à nulle part.
Par contre, dès qu'on insère un UserForm, la référence se crée à "MSForms" et là Controls est disponible pour certains objets, dont le UserForm, mais aussi Frame et Page... et c'est tout.

Peut-être est-ce différent sous les versions les plus récentes d'Office, mais je ne peux vérifier...

MPi
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 juil. 2007 à 23:15
Bonsoir MPI et merci.

Pour ton info :
Une discussion quasi isimilaire viebt d'être ouverte ici :
http://www.vbfrance.com/infomsg_BOUCLE_982799.aspx#1
Vas-y si tu l'estimes nécessaire.
0
Rejoignez-nous