Bonjour MacFly, bonjour le forum,
En pièce jointe ton fichier modifié. J'ai supprimé la TextBox2, pense à adapter le reste du code...
Le code :
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim P As Object 'déclare la variable P (onglet Parametres)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
Dim I As Integer 'déclare la variable I (Incrément)
Dim D As Object 'déclare la variable D (Dictionnaire)
'*****************************************************************************************
'la propriété de la ComboBox1 a été modifiée : '[MatchEntry] = 1- fmMatchEntryComplete
'cela signifie que la ComboBox1 affiche le nom correspondant aux premières lettres éditées
'*****************************************************************************************
Set P = Sheets("PARAMETRES") 'définit l'onglet P
DL = P.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 2 (=B) de l'onglet P
TC = P.Range("B1:B" & DL) 'définit le tableau de cellules TC
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TC, 1) 'boucle sur toutes les lignes tu tableau de cellules TC
'si la valeur de la ligne du tableau TC n'est pas vide, alimente le diciotnnaire D
If TC(I, 1) <> "" Then D(TC(I, 1)) = ""
Next I 'prochaine ligne de la boucle
Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec les éléments de du sictionnaire D sans doublon
End Sub
Le fichier :