Bonjour,

Vous allez vous dire en voyant le titre de mon post qu'il y a déjà eu bien des sujets à ce propos

Seulement, j'ai tenté plein de code que j'ai pu trouvé sur ce forum et d'autres encore, mais je n'y arrive pas
C'est pour cela que je me permets de vous solliciter

Mon classeur possède un petit UserForm, qui possède lui-même 2 ComboBox.

Ma première s'alimente comme 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
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub UserForm_Initialize()
 
  Dim ws_data As Worksheet
  Dim lstrw As Long
  Dim liste_valeurs As String
  Dim NAME As String
 
 
  'feuille
  Set ws_data = Worksheets(1)
 
  'dernière ligne
  lstrw = ws_data.Cells(Rows.Count, 19).End(xlUp).Row
 
  'par défaut
  liste_valeurs = ""
 
  'boucle
  For i = 13 To lstrw
    NAME = ws_data.Cells(i, 19)
 
    'vérification
    If InStr(liste_valeurs, NAME) < 1 Then
        CB_SURNAME.AddItem "" & NAME
 
        If liste_valeurs = "" Then
            liste_valeurs = NAME
        Else
            liste_valeurs = liste_valeurs & ";" & NAME
        End If
    End If
  Next
End Sub
Ma 2ème Combobox2 s'alimente en fonction de la valeur de la première comme 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
22
23
24
25
26
27
28
29
30
31
32
33
Private Sub CB_SURNAME_Change()
 
Dim ws_data As Worksheet
Dim lstrw As Long
Dim liste_formation As String
Dim FORMATION As String
 
'effacer le contenu de CB_FORMATION
Me.CB_FORMATION.Clear
 
'vérifier si sélection CB_SURNAME then
If Me.CB_SURNAME.Value <> "" Then
    'si sélection CB_SURNAME then alors ajouter formation dans CB_FORMATION
    'feuille
    Set ws_data = Worksheets(1)
 
    'dernière ligne
    lstrw = ws_data.Cells(Rows.Count, 2).End(xlUp).Row
 
          'par défaut
  liste_formation = ""
 
    'boucle
    For i = 12 To lstrw
        FORMATION = ws_data.Cells(i, 2)
            'vérifier le NOM
        If ws_data.Cells(i, 17) = Me.CB_SURNAME.Value Then
                'ajout des formations
                Me.CB_FORMATION.AddItem "" & FORMATION
        End If
    Next
End If
End Sub
Cela fonctionne très bien.

Mais j'aimerai que, dans la 2ème CB n'apparaissent pas les doublons !

Je ne sais pas quelle procédure utiliser ni où la placer....

Pourriez-vous m'aider svp ?

Merci beaucoup d'avance !

Bien cordialement,

Mél