Sub test()
Dim k As String, matos As New Collection, ks() As String
If Not Exist(k, "bleu") Then Add matos, k, "bleu", "voiture"
If Not Exist(k, "rouge") Then Add matos, k, "rouge", "velo"
If Not Exist(k, "verte") Then Add matos, k, "verte", "trotinnette"
ks() = Split(k, "©")
For i = 1 To matos.Count
Debug.Print matos(i), ks(i)
Next
Clear matos, k
If Not Exist(k, "bleu") Then Add matos, k, "bleu", "voiture"
If Not Exist(k, "rouge") Then Add matos, k, "rouge", "velo"
If Not Exist(k, "verte") Then Add matos, k, "verte", "trotinnette"
Remove matos, k, "rouge"
If Not Exist(k, "rouge") Then Add matos, k, "rouge", "velo"
End Sub
Function Exist(k As String, v As String) As Boolean
Exist = InStr("©" & k & "©", "©" & v & "©")
End Function
Sub Add(c As Collection, ks As String, k As String, v As Variant)
c.Add v, k
ks = ks & "©" & k
End Sub
Sub Clear(c As Collection, ks As String)
Set c = New Collection: ks = ""
End Sub
Sub Remove(c As Collection, ks As String, k As String)
c.Remove k
ks = Replace(ks & "©", "©" & k & "©", "©")
If Right(ks, 1) = "©" Then Mid(ks, Len(ks), 1) = " "
ks = Trim(ks)
End Sub