Bonjour,

Dans un classeur, j’ai deux colonnes de données. Dans la première figurent une liste de noms, qui peuvent apparaître plusieurs fois chacun. Dans le seconde colonne, on retrouve des initiales correspondant à chaque entrée de la première colonne. Dans la première colonne, un nom apparaît plusieurs fois uniquement si plusieurs initiales lui sont affectées.
Via deux combobox, je cherche à générer deux listes « uniques »(dans le sens ou pas de doublons présents), la deuxième dépendant directement de la sélection faite dans la première. Concrètement, si dans cette première liste un nom est choisi, la seconde combobox donnant le choix des initiales, ne doit comporter que les initiales qui ne lui ont pas déjà été affectées.

Exemple :
John AAA
Bart BBB
Bart AAA
Jean CCC


Si John est sélectionné dans la combobox1, alors seuls BBB et CCC devront apparaître dans la combobox2.
Si Bart est sélectionné dans la combobox1, alors seul CCC devra apparaître dans la combobox2.
Si Jean est sélectionné dans la combobox1, alors seuls BBB et AAA devront apparaître dans la combobox2.


J'ai pour le moment mis ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub ComboBox1_Change()
 
ComboBox2.Clear
 
Dim ListeUniqueComboBox2 As New Collection
 
 
On Error Resume Next
For Each cell In Worksheets("Feuil1").Range("I11:I" & Worksheets("Feuil1").Range("I11").End(xlDown).Row)
    If cell <> Application.WorksheetFunction.VLookup(ComboBox1.Text, Sheets("Feuil1").Range("G11:I" & Worksheets("Feuil1").Range("G11").End(xlDown).Row), 3, False) Then
        ListeUniqueComboBox2.Add cell, CStr(cell)
    End If
Next cell
On Error GoTo 0
 
 
For i = 1 To ListeUniqueComboBox2.Count
    ComboBox2.AddItem ListeUniqueComboBox2.Item(i)
Next i
 
End Sub
Seulement, ce code ne prend pas en compte le fait qu'un nom peut avoir plusieurs initiales qui lui ont été affectés... Savez-vous comment pallier le problème ?

Merci d'avance.