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 34 35
|
'Attention, si tu rencontres une erreur au moment de l'exécution du code et que celui-ci s'arrêtesur Dim Table as Scripting.Dictionary, _
dans la Fenêtre VBE(visual basic editor) / barre des menus / outils / références / vérifie bien que "Microsoft scripting Runtime" _
est coché
Private Sub UserForm_Initialize()
Dim Table As Scripting.Dictionary
Dim i, j, deja As Boolean, A As Variant
Set Table = New Scripting.Dictionary
j = 0
With Sheets(1) ' À adapter
For Each A In .Range("B2:B" & .Range("B" & Rows.Count).End(xlUp).Row)
'Vérifie si le nom n'est pas une erreur, n'est pas vide
'n'a pas déjà été récupéré, ne contient pas "utilisateur"
deja = True
If IsError(A) Then
deja = False ' on n'y met pas les valeurs d'erreur
ElseIf Len(A) = 0 Then
deja = False
ElseIf Table.Exists(A.Value) Then
deja = False
End If
If deja Then Table.Add A.Value, j: j = j + 1 'rajoute Next
Next
End With
For i = 0 To Table.Count - 1
Debug.Print Table.Keys(i)
ListBox1.AddItem (Table.Keys(i))
Next i
Set Table = Nothing ' Nettoyage
End Sub |
Partager