Débutant Combo box variable globale

Résolu
funxav Messages postés 25 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 30 avril 2005 - 9 déc. 2004 à 03:47
funxav Messages postés 25 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 30 avril 2005 - 11 déc. 2004 à 14:36
Bonjour,

Question de débutant en quête de savoir ... :)
J'ai cherché comment faire en sorte de créer un combo box.
(L'enregistreur de macro l'a fait pour moi).

ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")

Maintenant, je cherche à stocker des variables globales qui référencent les combo box que je créé.

J'ai essayé ça :

Dim mycombo as ComboBox

Set mycombo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")

Il me jette et il a bien raison, donc je fait ça

Dim mycombo as Object

Set mycombo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")

Là ça passe mais comment convertir ma référence en une référence sur un ComboBox ? Ou y a t il un autre moyen de procéder pour stocker mes références sur mes combobox ?

3 réponses

funxav Messages postés 25 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 30 avril 2005
11 déc. 2004 à 14:36
Pour ceux que ça pourrait intéresser de créer un control dynamiquement :

Dim mycombo as ComboBox

Set mycombo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1")

' pour accéder à la méthode spécifique AddItem tu combo

mycombo.object.AddItem "monbelitem"
3
cs_krafi Messages postés 48 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 28 janvier 2006
9 déc. 2004 à 09:03
Le plus simple, pour créer automatiquement des controles(combobox,textbox,picturebox etc...):

- est de mettre un controle par default sur ta form ex :(ComboBox1) en lui mettant sa propriété index à 0.

- il suffit ensuite pour en charger un automatiquement, de faire :

load ComboBox1(1)
ComboBox1(1).text = "test"
ComboBox1(1).visible = true

- si tu veux en charger plusieurs :

dim i as integer

For i = 1 to 10
load ComboBox1(i)
ComboBox1(i).text = "test"
ComboBox(i).left = ComboBox(i-1).width + 50 ' Comme ça ils s'affichent tous les uns à cotés des autres

ComboBox1(i).visible = true
Next

Voila, ça devrais être bon !

bonne continuation
0
funxav Messages postés 25 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 30 avril 2005
9 déc. 2004 à 14:37
Je suis débutant donc ne m'en veut pas trop :)

J'ai pas trouvé dans la doc ce qu'est la propiété index. Elle n'est pas accessible à partir d'excel mais j'ai réussi à la trouver à partir de VBA.

D'autre part, à l'éxécution, il me dit :

"wrong number of argument or invalid property assignement"

Aurais tu une autre méthode :

Eventuellement accéder au combobox à partir de son nom ou autre ... ? L'essentiel étant que je puisse récupérer une référence (variable) de type ComboBox.
0
Rejoignez-nous