Débutant Combo box variable globale

Résolu
Signaler
Messages postés
25
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
30 avril 2005
-
Messages postés
25
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
30 avril 2005
-
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

Messages postés
25
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
30 avril 2005

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
Messages postés
48
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
28 janvier 2006

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
Messages postés
25
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
30 avril 2005

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