Supprimer les doublons dans une même cellule

jozerebel

XLDnaute Occasionnel
Bonjour à tous,

J'ai des cellules qui contiennent parfois plusieurs fois la même chose...

Par exemple :
0701144215+0802147947+0802147947+0802147947

Je souhaiterais pouvoir tester cette cellule afin de n'obtenir que :


0701144215+0802147947

C'est à dire supprimer les données qui se retrouvent plusieurs fois. Toutes les chaines de caractères sont séparées par "+"

Ou sinon, si l'on peut modifier ce code VBA pour qu'il affiche directement ce que je souhaite:

Function RechTous(v, champRech As Range, ChampRetour As Range)
a = champRech
temp = ""
For i = 1 To champRech.Count
If a(i, 1) = v Then
temp = temp & ChampRetour(i) & "+"
End If
Next i
RechTous = Left(temp, Len(temp) - 1)
End Function

Sachant que mon résultat est "Champ retour".

En fait le code devrait tester tous les champs retour et ne les retourner qu'une fois...

J'espère avoir été compréhensible...

D'avance merci pour votre aide.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Supprimer les doublons dans une même cellule

Bonsoir,

Voir PJ

Function SansDoublon(c, sep)
a = Split(Application.Trim(c), sep)
Set mondico = CreateObject("Scripting.Dictionary")
For i = 0 To UBound(a): mondico.Item(a(i)) = 1: Next i
SansDoublon = Join(mondico.keys, sep)
End Function

JB
Formation Excel VBA JB
 

Pièces jointes

  • Copie de MFCDoublonCellule2.xls
    33 KB · Affichages: 346

job75

XLDnaute Barbatruc
Re : Supprimer les doublons dans une même cellule

Bonjour jozerebel, JB,

Loin d'être aussi à l'aise que JB avec les objets Scripting.Dictionary, j'avais fait ceci :

Code:
Function SupDoublon$(txt$)
Dim s, u%, i%, j%
s = Split(txt, "+")
u = UBound(s)
For i = 0 To u
  For j = i + 1 To u
    If s(i) = s(j) Then s(j) = ""
  Next
Next
For i = 0 To u
  SupDoublon = SupDoublon & IIf(s(i) = "" Or i = 0, "", "+") & s(i)
Next
End Function

Fichier joint.

A+
 

Pièces jointes

  • Classeur(1).xls
    30 KB · Affichages: 191
  • Classeur(1).xls
    30 KB · Affichages: 209
  • Classeur(1).xls
    30 KB · Affichages: 203

Discussions similaires

Réponses
2
Affichages
140
Réponses
7
Affichages
359

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom