Problème sur fonction me.control VBA EXCEL

Résolu/Fermé
goku13127 Messages postés 3 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 2 octobre 2009 - 30 sept. 2009 à 13:14
goku13127 Messages postés 3 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 2 octobre 2009 - 1 oct. 2009 à 09:06
Bonjour,

Je suis nouveau sur le forum et surtout sur VBA. J'ai un combobox (combobox1), selon la donnée sélectionnée dans combobox1, il doit apparaître dans combobox 2 des données sélectionnées sur une feuille EXCEL.

J'ai rentré ce code :

Private Sub ComboBox1_Change()

If ComboBox1 = "aaa" Then

Dim i As Integer

For i = 1 To 3
Me.Controls("ComboBox2" & i).RowSource = _
"feuil1!t235:t240"
Next i

If ComboBox1 = "bbb" Then

Dim i As Integer

For i = 1 To 3
Me.Controls("ComboBox2" & i).RowSource = _
"feuil1!t241:t245"
Next i

end if

end sub

J'avais recopié ce code car le problème recopié un peu au mien. Mais un message d'erreur apparaît en mettant "Objet spécifié introuvable". Je ne savais pas ce que veut dire le "Me".

Merci d'avance pour votre aide

2 réponses

gregouz62 Messages postés 125 Date d'inscription mercredi 26 août 2009 Statut Membre Dernière intervention 20 octobre 2009 11
30 sept. 2009 à 14:54
Bonjour,

A première, vue, ce n'est pas le Me (qui représente ta Form courante) qui pose problème.

Le problème se situe sur tes boucles For.

Tu veux utilisé le contrôle "ComboBox2" & i.
Pour i =1 ça donne ComboBox21
Pour i =2 ça donne ComboBox22
Pour i =3 ça donne ComboBox23

Hors, il m'étonnerait que tu ais un contrôle qui s'appelle ComboBox21, ComboBox22 ou bien ComboBox23.

Pour remédier au problème, dans tes parenthèses après Controls tu ne mets pas ("ComboBox2" & i) mais ("ComboBox2").

Ça devrait fonctionner.

Cdt
1
goku13127 Messages postés 3 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 2 octobre 2009 1
1 oct. 2009 à 09:06
Bonjour gregouz62,

Merci pour ta réponse elle fonctionne parfaitement. Pour ceux qui seraient interressés voici le code que j'ai mis :

Private Sub ComboBox1_Change()

If ComboBox1 = "ALGERIA" Then

Me.Controls("ComboBox2").RowSource = _
"feuil1!t235:t235"

ElseIf ComboBox1 = "ANGOLA" Then

Me.Controls("ComboBox2").RowSource = _
"feuil1!t236:t236"

ElseIf ComboBox1 = "ARGENTINA" Then

Me.Controls("ComboBox2").RowSource = _
"feuil1!t237:t237"

Ainsi de suite pour toutes les valeures qui se trouvent dans mon combobox 1.

Encore merci
1