Public Derlig1 As Long
Option Explicit 'oblige à déclarer toutes les variables
Private O As Worksheet 'déclare la variable O (Onglet)
Private TS As ListObject 'déclare la variable TS (Tableau Structuré)
Private TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Private Sub UserForm1_Initialize()
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Set O = Sheets("TM") 'définit l'onglet O
Set TS = O.ListObjects(1) 'définit le tableau structuré TS
TV = TS.DataBodyRange 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I di tableau des valeurs TV
D(TV(I, 2)) = "" 'alimente le dictionnaire D avec les données en colonne 2 de TV
Next I 'prochaine ligne de la boucle
Me.ComboBox1.List = Application.Transpose(D.Keys) 'alimente la ComboBox1 avec les éléments du dictionnaire D sans doublon (les clés)
Me.ComboBox1.List = ListSort(Me.ComboBox1.List) 'tri de la liste
End Sub
Function ListSort(liSte) 'tri combobox
Dim First As Integer, Last As Integer
Dim I As Integer, J As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For I = First To Last - 1
For J = I + 1 To Last
If liSte(I, 0) > liSte(J, 0) Then
Temp = liSte(J, 0)
liSte(J, 0) = liSte(I, 0)
liSte(I, 0) = Temp
End If
Next J
Next I
ListSort = liSte
End Function