Problème sur fonction me.control VBA EXCEL

Résolu
goku13127 Messages postés 3 Statut Membre -  
goku13127 Messages postés 3 Statut Membre -
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

  1. gregouz62 Messages postés 129 Statut Membre 11
     
    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
  2. goku13127 Messages postés 3 Statut Membre 1
     
    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