Bonjour,
Régler cette question par formule n'est pas impossible mais une formule matricielle sur du texte est rarement aisée à construire, et en la matière la solution la plus souple réside généralement dans une fonction personnalisée, qui permet de traiter par formule mais en usant d'une formule simple...
Function COMPARCHMANQUE_MOD(ch As String, chref As String) As String
Dim tch, i%
Application.Volatile
chref = Replace(chref, " ", "")
tch = Split(Replace(ch, " ", ""), ";")
For i = 0 To UBound(tch)
If tch(i) <> "" Then chref = Replace(chref, tch(i), "")
Next i
chref = Replace(chref, ";;", ";")
If chref Like ";*" Then chref = Right(chref, Len(chref) - 1)
If chref Like "*;" Then chref = Left(chref, Len(chref) - 1)
COMPARCHMANQUE_MOD = chref
End Function
La fonction est à placer dans un module standard. Elle s'utilise sur la feuille comme les autres fonction d'Excel (elle apparaîtra dans la liste des fonctions). Après avoir tapé = suivi du nom de la fonction, 2 arguments entre parenthèse : la référence de la chaîne à tester, et la référence du modèle. La fonction renverra les éléments figurant dans le modèle mais manquant dans la chaîne.
NB-par sécurité, elle élimine les espaces intempestifs éventuels...
Si des éléments figurent dans la chaîne mais pas dans le modèle, ils seront ignorés. Mais on peut bâtir si besoin la fonction "symétrique" renvoyant les éléments de la chaîne ne figurant pas dans le modèle...
Cordialement.