Suppression doublons dans une cellule "texte&

Résolu
Bonjour à tous,

existe-t-il une formule excel qui permette de supprimer n'importe quel doublon dans le texte d'une cellule? En gros, j'aimerais ne jamais retrouver 2 fois le même mot dans le texte d'une cellule.

merci d'avance.

Sanchis81
Configuration: Windows XP Internet Explorer 6.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    tes mots sont ils séparés par des espaces?
    1. Bonjour Michel,

      oui, ils sont tous séparés d'un espace:

      ex: E121 E316 E125 E78 E96 E879 E451 E846 E21 E125
      1. Contributeur
        ci joint une fonction personnalisée à défaut d'une formule: c'est pas ce que j'ai fait de mieux mais..

        Function enlever_double(adresse As Range) As String
        Dim tablo, cptr As Byte, texto As String
        Dim coll As New Collection
        
        tablo = Split(adresse.Value)
        
        For cptr = 0 To UBound(tablo)
            On Error Resume Next
                coll.Add tablo(cptr), CStr(tablo(cptr))
            On Error GoTo 0
        Next
        
        cptr = 0
        For cptr = 1 To coll.Count
            texto = texto & coll(cptr) & " "
        Next
        
        enlever_double = texto
        Set coll = Nothing
        End Function

        1. Merci michel! Ca marche parfaitement! a nouveau mon sauveur!
          1. Contributeur
            Restons calmes quand m^me! :-p
            Bon WE
            tagge en résolu, merci
          2. @michel_mLinkBack Outils de la discussion
            Vieux 11/07/2007, 22h18 #16 (permalink)
            myDearFriend!
            XLDnaute Barbatruc

            Avatar de myDearFriend!

            Date d'inscription: février 2005
            Messages: 2 490

            Par défaut Re : Je n'arrive pas à faire marcher la macro !!!
            Bonsoir cephalotus, allegro50, pierrejean, lacorse33, ODVJ,

            A mon avis, tant qu'à faire une fonction personnalisée, autant qu'elle puisse être utilisée directement depuis la feuille de calcul.

            Dans un module de code standard ("Module1" par exemple) :
            Code:

            DANS UN MODULE DE CODE STANDARD

            Function EpureDoublon(R As Range) As String
            'myDearFriend! - www.mdf-xlpages.com
            Dim Dbl As New Collection
            Dim TabTemp As Variant
            Dim L As Byte, N As Byte
            'Crée un tableau de mots (séparateur "-")
            TabTemp = Split(R.Text, "-")
            'Reconstitue la chaine en extrayant les mots doublons
            For L = 0 To UBound(TabTemp, 1)
            N = Dbl.Count
            On Error Resume Next
            Dbl.Add TabTemp(L), CStr(TabTemp(L))
            On Error GoTo 0
            If Dbl.Count > N Then 'Si pas de doublon alors alimente la chaine résultat
            EpureDoublon = EpureDoublon & IIf(EpureDoublon <> "", "-", "") & TabTemp(L)
            End If
            Next L
            End Function

            Puis en cellule B2, tu saisies =EpureDoublon(A2)
            Et tu tires ensuite cette formule vers le bas.

            La détection des doublons se fait grâce à un objet collection. Méthode de J.Walkenbach (basée sur une astuce de J.G. Hussey)

            Cordialement,
            Fichiers attachés
            Type de fichier : zip mDF_Exemple.zip (10,8 Ko, 6 affichages)
            __________________
            Didier_mDF

            www.mdf-xlpages.com