Private Sub UserForm_Initialize()
' déclaration de variables
Dim Collec As New Collection
Dim cell As Range
Me.ListBoxspec.ColumnWidths = "300,150"
Me.ListBoxspec.Clear
With Sheets("Feuil1")
' Pour chaque cellule de la plage A2 à A et dernière ligne
For Each cell In .Range("B2:B" & .Range("B65536").End(xlUp).Row)
' si une erreur survient , on continue
On Error Resume Next
' On crée une collection de la colonne Spec ( c'est la ou se trouve les valeurs en doublons)
' on le charge dans la collection
' le collection n'accepte que les valeur uniques , le cas échéant on a une erreur d'ou le on error resume next
Collec.Add cell.Offset(0, 1), CStr(cell.Offset(0, 1))
'Si il n'y a pas d'erreur c'est que c'est une valeur unique
If Err = 0 Then
' dans ce cas on charge la list box par la méthode add item
Me.ListBoxspec.AddItem
Me.ListBoxspec.List(Me.ListBoxspec.ListCount - 1, 0) = cell
Me.ListBoxspec.List(Me.ListBoxspec.ListCount - 1, 1) = cell.Offset(0, 1)
Else
' si l'erreur est didfférente de 0 , on la remet à zéro
Err = 0
End If
On Error GoTo 0
' l'on passe à la ligne suivante
Next
End With
End Sub