Private Sub UserForm_Click()
Dim TheCell As Range
Dim iLigne As Integer
Dim ListeMail As String
'Il faut aller dans le menu Outils, Référence et cocher Microsoft Scripting runtime
Dim DicoType As New Dictionary
'On boucle sur chaque element de la liste pour renseigner le Dico
For iLigne = 0 To ListBoxAE.ListCount - 1
'S'il n'existe pas dans le dico on l'y rajoute
If Not DicoType.Exists(ListBoxAE.List(iLigne)) Then DicoType.Add ListBoxAE.List(iLigne), iLigne
Next
'On boucle sur chaque cellule de la colonne 4 du tableau
For Each TheCell In Feuil1.Range("Tableau3").Columns(4).Cells
'On controle si le type est dans la liste
If DicoType.Exists(TheCell.Value) Then
'S'il existe, on rajoute le séparateur s'il y a déjà au moins un mail dans la chaine
If ListeMail <> "" Then ListeMail = ListeMail & ","
'On rajoute le mail
ListeMail = ListeMail & TheCell.Offset(0, -3)
End If
Next
End Sub