Alimenter une ComboBox en fonction de la valeur indiquée dans une autre

Bonjour,

Je suis débutant.

J'aimerais, dans un Userform, alimenter une ComboBox4 en fonction de la valeur choisie dans la ComboBox4.

Les deux sont alimentée par un seul tableau, la ComboBox 3 contient les valeurs de la colonne H (4 valeurs : ADV1;2;3 et 4) et la ComboBox 4 contient les valeurs de la Colonne A qui sont toutes différentes.

J'aimerais que la ComboBox4 ne reprenne que les cellules A qui correspondent au ADV choisit dans la ComboBox3. (toutes les lignes avec ADV1 en H).

Mais c'est là que je bloque.

Ma ComboBox3 s'alimente tout simplement avec :

        .ComboBox3.Clear
        .ComboBox3.AddItem "ADV1"
        .ComboBox3.AddItem "ADV2"
        .ComboBox3.AddItem "ADV3"
        .ComboBox3.AddItem "ADV4"

Et j'ai ensuite essayé ceci pour alimenter la ComboBox 4 :

Private Sub ComboBox3_Change()

Dim Plage As Range
Dim L As Integer
Dim cell As Range

Sheets("Function").Activate

Set Plage = Range("A2:H130")
    For Each cell In Plage
        If cell.Value = ComboBox3 Then
        ComboBox4.AddItem Sheets("Function").Cells(L, "A").Value
        L = L + 1
        End If
    Next
End Sub

Je reçois le message d'erreur Application Defined or object Defined Error.

J'ai trouvé beaucoup de postes/tuto expliquant quelque chose de plus ou moins semblable mais je finis toujours avec le même message d'erreur.

D'où ce poste, Pourriez-vous m'éclairer ? :)

j'ai joint un fihcier.

Merci beaucoup d'avance

13test.xlsm (294.10 Ko)

Bonjour,

Comme ça a première vue, tu déclares bien le type de la variable L mais ne défini en aucun cas sa valeur. Soit tu utilises Range avec des lettres, soit Cells des valeurs numériques. Ici tu as L non défini, et A dans Cells. ça ne va pas.

De plus, ton projet possède un MDP, difficile de travailler dessus.

Bonne soirée.

12test.xlsm (296.67 Ko)

Merci pour cette réponse super rapide et Désolé pour ça j'avais oublié ce mot de passe.

je l'ai retiré.

Et j'ai donc essayé comme ceci :

Private Sub ComboBox3_Change()

Dim Plage As Range
Dim L As Integer
Dim cell As Range

Sheets("Function").Activate

Set L = 2
Set Plage = Range("A2:H130")
    For Each cell In Plage
        If cell.Value = ComboBox3 Then
        ComboBox4.AddItem Sheets("Function").Cells(L, 1).Value
        L = L + 1
        End If
    Next
End Sub

Mais j'ai maintenant un Object required.

Bonne soirée

Donc j'ai enlevé le Set... et ça fonctionne plus ou moins.

La ComboBox4 est bien remplie mais elle ne change pas si je modifie la ComboBox3.

Désolé pour tous ces messages d'affilé.

j'avais oublié le .clear

Private Sub ComboBox3_Change()

Dim Plage As Range
Dim L As Integer
Dim cell As Range

ComboBox4.Clear

Sheets("Function").Activate

L = 2
Set Plage = Range("A2:H130")
    For Each cell In Plage
        If cell.Value = ComboBox3 Then
        ComboBox4.AddItem Sheets("Function").Cells(L, 1).Value
        L = L + 1
        End If
    Next
End Sub

Mais ça ne fonctionne pas non plus les Lignes repirses ne sont pas les bonnes

Bonjour,

Set Plage = Range("H2:H130")
    For Each cell In Plage
        If cell.Value = ComboBox3 Then
        ComboBox4.AddItem Sheets("Function").Range("A" & cell.Row).Value
        L = L + 1
        End If
    Next
End Sub

Par contre tu conserves les doublons, les souhaites-tu ?

Bonne soirée.

Bonjour Ergotamine,

Normalement il n'y a pas de Doublon dans la Colonne A et si il y en a je les conserve oui car je dois les voir.

Avec ton code j'ai le message d'erreur : Could not set the rowsource property. Invalid Property Value.

Merci pour ta réponse, Bonne soirée

Bonsoir,

Chez moi ce code fonctionne (cf. fichier joint), est-ce différent chez toi ?

Tu verras qu'en testant pour ADV1 tu te retrouves avec un doublon.

Bonne soirée.

14test-v2.xlsm (265.93 Ko)

Bonsoir à nouveau,

En essayant avec le fichier ça fonctionne effectivement. Je ne sais pas ce que j'ai fait en collant.

Merci beaucoup !!

Beaucoup plus simple je peux supprimer la variable L.

Rechercher des sujets similaires à "alimenter combobox fonction valeur indiquee"