OVH Cloud OVH Cloud

Combobox...Le retour

8 réponses
Avatar
mephisto_atecmi
Salut,

J'ai placé 2 combobox sur un userform et j'aimerai que la rowsource de la
combo2 change en fonction de ce que je choisis dans ma combo1.
J'ai essayé ceci :

Private Sub Combo1_AfterUpdate()

Combo2.RowSource = ""
If Combo1.Value = "Rexnord" Then
Combo2.RowSource = "dm1:dm5"
End If
If Combo1.Value = "Ets Allards" Then
Combo2.RowSource = "dm6:dm10"
End If
End Sub

Mais ça ne fonctionnait pas, j'ai donc essayé ça:

Private Sub Combo1_change()

Dim var
Combo2.RowSource = ""
If Combo1.Value = "Rexnord" Then
Combo2.RowSource = "a1:a5"
var = Range("a1:a5")
Combo2.Value = var(3, 1) '3ème item sélectionné
End If
If Combo1.Value = "Ets Allards" Then
Combo2.RowSource = "a6:a10"
var = Range("a6:a10")
Combo2.Value = var(1, 1) '1er item sélectionné
End If
End Sub

Mais il reste toujours le même problème
Apparemment il ya le bon nombre d'item dans la combo2 pour mes différentes
sélections de ma combo1 mais il n'y a rien d'écrit !! c'est vide.
Je n'ai pas fait d'erreur de majuscule/minuscule ni de synthaxe.
C'est peut être dû au fait que ce ne sont pas des valeurs mais des mots, ou
alors au format des cellules, je ne sais pas.
Auriez-vous une petite idée....?

Merci pour vos suggestions. @+

8 réponses

Avatar
papou
Bonjour
Utilise plutôt la propriété ListIndex de ton combo pour définir la ligne à
sélectionner par défaut.
Listindex commence à la valeur -1 (aucun élément sélectionné) donc si tu
veux la troisième élement de la liste :
Combo2.Listindex = 2

Sinon si tu souhaites malgré tout continuer à utiliser ta méthode, modifie
comme ceci :
Dim Var As Range
Set Var = Feuil1.Range("A1:A5")
Combo2.Value = var.Cells(3, 1) '3ème item sélectionné


Cordialement
Pascal

"mephisto_atecmi" a écrit dans le
message de news:
Salut,

J'ai placé 2 combobox sur un userform et j'aimerai que la rowsource de
la
combo2 change en fonction de ce que je choisis dans ma combo1.
J'ai essayé ceci :

Private Sub Combo1_AfterUpdate()

Combo2.RowSource = ""
If Combo1.Value = "Rexnord" Then
Combo2.RowSource = "dm1:dm5"
End If
If Combo1.Value = "Ets Allards" Then
Combo2.RowSource = "dm6:dm10"
End If
End Sub

Mais ça ne fonctionnait pas, j'ai donc essayé ça:

Private Sub Combo1_change()

Dim var
Combo2.RowSource = ""
If Combo1.Value = "Rexnord" Then
Combo2.RowSource = "a1:a5"
var = Range("a1:a5")
Combo2.Value = var(3, 1) '3ème item sélectionné
End If
If Combo1.Value = "Ets Allards" Then
Combo2.RowSource = "a6:a10"
var = Range("a6:a10")
Combo2.Value = var(1, 1) '1er item sélectionné
End If
End Sub

Mais il reste toujours le même problème
Apparemment il ya le bon nombre d'item dans la combo2 pour mes
différentes
sélections de ma combo1 mais il n'y a rien d'écrit !! c'est vide.
Je n'ai pas fait d'erreur de majuscule/minuscule ni de synthaxe.
C'est peut être dû au fait que ce ne sont pas des valeurs mais des mots,
ou
alors au format des cellules, je ne sais pas.
Auriez-vous une petite idée....?

Merci pour vos suggestions. @+




Avatar
mephisto_atecmi
Bonjour

En fait ce que je voudrai, c'est que ma plage de cellules de ma combo2 change
en fonction de ce que je choisis dans la combo1.
Je ne veux pas sélectionner qu'un seul élément.

-----------------------------------------------------------------------------------------------

Bonjour
Utilise plutôt la propriété ListIndex de ton combo pour définir la ligne à
sélectionner par défaut.
Listindex commence à la valeur -1 (aucun élément sélectionné) donc si tu
veux la troisième élement de la liste :
Combo2.Listindex = 2

Sinon si tu souhaites malgré tout continuer à utiliser ta méthode, modifie
comme ceci :
Dim Var As Range
Set Var = Feuil1.Range("A1:A5")
Combo2.Value = var.Cells(3, 1) '3ème item sélectionné


Cordialement
Pascal



Avatar
papou
Re
Ton code sur l'évènement Change fonctionne correctement pour définir la
plage de cellules en fonction de la valeur choisie.
Donc ton problème ne se situe pas au niveau de la plage mais au niveau de la
méthode que tu utilises pour choisir la valeur par défaut du combo.

Cordialement
Pascal


"mephisto_atecmi" a écrit dans le
message de news:
Bonjour

En fait ce que je voudrai, c'est que ma plage de cellules de ma combo2
change
en fonction de ce que je choisis dans la combo1.
Je ne veux pas sélectionner qu'un seul élément.

-----------------------------------------------------------------------------------------------

Bonjour
Utilise plutôt la propriété ListIndex de ton combo pour définir la ligne
à
sélectionner par défaut.
Listindex commence à la valeur -1 (aucun élément sélectionné) donc si tu
veux la troisième élement de la liste :
Combo2.Listindex = 2

Sinon si tu souhaites malgré tout continuer à utiliser ta méthode,
modifie
comme ceci :
Dim Var As Range
Set Var = Feuil1.Range("A1:A5")
Combo2.Value = var.Cells(3, 1) '3ème item sélectionné


Cordialement
Pascal





Avatar
mephisto_atecmi
Oui, tu as raison, je suis sûr que le code fonctionne correctement, le
problème doit être ailleurs ..., mais je n'ai pas utilisé de méthode pour
choisir la valeur par défaut du combobox. En fait ça a l'air de marcher mais
c'est bizarre, il n'y a rien d'écrit dans ma combo2
----------------------------------------------------------------------------------------------

Re
Ton code sur l'évènement Change fonctionne correctement pour définir la
plage de cellules en fonction de la valeur choisie.
Donc ton problème ne se situe pas au niveau de la plage mais au niveau de la
méthode que tu utilises pour choisir la valeur par défaut du combo.

Cordialement
Pascal




Avatar
Phil99999
Salut, je t'ai envoyé le fichier corrigé !!
T'étais pas sur la bonne page !
Qd tu as plusierus feuilles et que tu lances ton userform , n'oublie pas de
préciser sur laquelle tu bosses !!

Pour le reste c'est listindex


Oui, tu as raison, je suis sûr que le code fonctionne correctement, le
problème doit être ailleurs ..., mais je n'ai pas utilisé de méthode pour
choisir la valeur par défaut du combobox. En fait ça a l'air de marcher mais
c'est bizarre, il n'y a rien d'écrit dans ma combo2
----------------------------------------------------------------------------------------------

Re
Ton code sur l'évènement Change fonctionne correctement pour définir la
plage de cellules en fonction de la valeur choisie.
Donc ton problème ne se situe pas au niveau de la plage mais au niveau de la
méthode que tu utilises pour choisir la valeur par défaut du combo.

Cordialement
Pascal







Avatar
mephisto_atecmi
Salut,
Tu l'as envoyé sur ?

------------------------------------------------------------------------------------------------

Salut, je t'ai envoyé le fichier corrigé !!
T'étais pas sur la bonne page !
Qd tu as plusierus feuilles et que tu lances ton userform , n'oublie pas de
préciser sur laquelle tu bosses !!

Pour le reste c'est listindex



Avatar
Phil99999
J'ai fais répondre !! Attends je regarde ...
Ouais c'est ça


Salut,
Tu l'as envoyé sur ?

------------------------------------------------------------------------------------------------

Salut, je t'ai envoyé le fichier corrigé !!
T'étais pas sur la bonne page !
Qd tu as plusierus feuilles et que tu lances ton userform , n'oublie pas de
préciser sur laquelle tu bosses !!

Pour le reste c'est listindex





Avatar
mephisto_atecmi
J'te remercie !! t'es mon sauveur !Quelle erreur bête aussi...
Fo dire, c'est la 1ère fois que j'utilise Excel aussi
Encore merci A+
_________________________________________________________________

J'ai fais répondre !! Attends je regarde ...
Ouais c'est ça


Salut,
Tu l'as envoyé sur ?

------------------------------------------------------------------------------------------------

Salut, je t'ai envoyé le fichier corrigé !!
T'étais pas sur la bonne page !
Qd tu as plusierus feuilles et que tu lances ton userform , n'oublie pas de
préciser sur laquelle tu bosses !!

Pour le reste c'est listindex