Bonjour,
Une piste à adapter à tes besoins. La procédure est exécutée sur sortie du ComboBox donc, soit en entrant dans un autre contrôle, soit en fermant l'UserForm :
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Plage As Range
Dim Cel As Range
'sur colonne A à partir de A1
With ActiveSheet
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
'recherche si la valeur entrée existe dans la liste, si elle existe, fin
Set Cel = Plage.Find(ComboBox1.Text, , xlValues, xlWhole)
If Not Cel Is Nothing Then Exit Sub
'redimensionne la plage
Set Plage = Plage.Resize(Plage.Rows.Count + 1, Plage.Columns.Count)
'ajoute la valeur puis tri
Plage(Plage.Rows.Count).Value = ComboBox1.Text
Plage.Sort Plage(1), xlAscending
'recharge le ComboBox
ComboBox1.Clear
For Each Cel In Plage: Me.ComboBox1.AddItem Cel.Value: Next Cel
End With
End Sub