Public Function ConcatTotal() As String
Application.Volatile 'permet de raffraichir la fonction à chaque modif de la feuille excel
Set dico = CreateObject("scripting.dictionary") 'création d'un dictionnaire
Set ListeIngrédients = Range("A8:A" & Range("A7").End(xlDown).Row) 'on récupère la liste des ingrédients de la feuille
For Each Ingrédient In ListeIngrédients
'MsgBox Ingrédient
Set c = Range("Ing").Find(Ingrédient.Value, lookat:=xlWhole)
For Each ele In Range("Allergènes").Rows(c.Row - 5).Cells
'MsgBox ele
If ele = "x" Then
allergène = Sheets("Liste ingrédients").Range("TabData").Cells(2, ele.Column)
If Not dico.exists(allergène) Then dico.Add allergène, 1
End If
Next ele
Next Ingrédient
For Each Valeur In dico.keys 'on verse tous les allergènes dans le résultat de la fonction sous forme de chaine
result = Valeur & "-" & result
Next Valeur
ConcatTotal = result
Set dico = Nothing
End Function