Bonjour,
Tu n'est peut-être pas familier des macros, mais sans doute qu'une fonction personnalisée te rendrait service.
Une fonction personnalisée est une macro de type Function qui renvoie une résultat après calcul sur les données qu'on lui soumet. Elle s'utilise de la même façon et dans les même conditions que les fonctions intégrées d'Excel, ce qui n'est pas dépaysant.
Il suffit donc de copier le texte de la macro ci-dessous, d'ouvrir l'éditeur VBA dans Excel par Alt+F11, dans l'éditeur de faire Insertion > Module pour insérer une module standard, et dans ce module (page blache) de coller la fonction. Puis de refermer l'éditeur.
Ensuite, en B1, tu tapes = suivi du nom de la fonction : DEDOUBLERDONNEES (elle apparaîtra dans la liste fournie par l'assistant, tu n'auras donc même pas à taper en entier), après la parenthèse, tu sélectionnes A1 pour que A1 s'ajoute comme argument de la fonction). Tu fermes la parenthèse, tu valides, et tu regardes si le résultat te convient.
Function DEDOUBLERDONNEES(dinit As String) As String
Dim dtrait, i%, j%
Application.Volatile
dtrait = Replace(dinit, " ", "")
dtrait = Replace(dtrait, Chr(10), "")
dtrait = Replace(dtrait, "|", " ")
dtrait = Split(dtrait)
For i = 1 To UBound(dtrait) - 2
For j = i + 1 To UBound(dtrait) - 1
If dtrait(j) = dtrait(i) Then dtrait(j) = "@"
Next j
Next i
dtrait = Join(dtrait, "|")
dtrait = Replace(dtrait, "@|", "")
DEDOUBLERDONNEES = dtrait
End Function
Cordialement
NB- Si tes données sont susceptibles de contenir le caractère "@", signale-le moi. Je ferai une correction pour choisir un caractère intermédiaire (servant à l'élimination des données supprimées) que tu n'utilises pas...