Mot en double sur la même cellule exel

Bonjour,



Bonjour à tous,

Je sollicite votre aide pour un problème au sein de ma base de donnée sur exel.
En effet, sur un grand nombre de cellules je retrouve souvent avec les même mots.

Exemple : Passage de roue pour renault laguna, laguna

J'aimerais une astuce afin de pourvoir supprimer la répétition du mot "laguna" pour le résultat : Passage de roue laguna

On m'avais déjà donné plusieurs astuce mais uniquement pour supprimer les doublon de plusieurs cellule et ce que je cherche à faire c'est supprimer les doublons au sein de la même cellules.

Au sein d'autres forum on m'a répondu :

Il suffit de faire ctrl+h "rechercher/remplacer" soit :
- rechercher : laguna, laguna
- remplacer laguna

Mais ce n'est pas le type de réponse que j'attendait car j'ai plusieurs centaines de mots différents en double ce qui me prend un temps fou.

A titre d'info ma base de donné est de 36 000 ligne afin de vous imaginer la quantité !

Je vous remercie à toutes et à tous pour votre précieuse aide.

Steve

3 réponses

  1. Salut,

    Si ta liste commence en A2 par exemple et si le dernier mot est toujour séparé par une virgule, sur la même ligne par exemple en C2 colle cette formule et incrémente la vers le bas

    =GAUCHE(A2;CHERCHE(",";A2&".")-1)

    Ensuite il suffira de faire un copier de ces données et collage Spécial cocher Valeur et OK
    0
    1. Salut Mike,

      Merci de t'être penché sur le sujet aussi rapidement.
      J'avoue ne pas trop être doué avec exel et pour être honnête je n'ai pas trop compris ta solution et la virgule n'est pas toujours présente.

      Voici un exemple plus précis d'une cellule :

      Garde boue - Pare boue avant coté passager KANGOO, KANGOO, - Pour véhicule immatriculé de 1998 à 2007 partie

      N'existe t'il pas de formule pour supprimer tout les mots identique au sein d'une même cellule ?

      Merci
      Steve
      0
      1. Contributeur
        Bonjour

        Tu as bien écrit
        "supprimer tout les mots identique au sein d'une même cellule ? "

        alors essaies ce code , kangoo et boue seront supprimés

        Const col As Byte = 1 'colonne à traiter 1=A, 2=B.....  
        Const dep As Byte = 2 'ligne de départ  
        
        Sub supprimer_double()  
        Dim fin As Integer, cptr As interger  
        Dim T_in  
        fin = Columns(col).Find("*", , , , , xlPrevious).Row  
        T_in = Range(Cells(dep, col), Cells(fin, col)).Value  
        For cptr = 1 To UBound(T_in)  
             T_in(cptr, 1) = sansdoublon(T_in(cptr, 1))  
        Next  
        Application.ScreenUpdating = False  
        Range(Cells(dep, col), Cells(fin, col)) = (T_in)  
        End Sub  
        
        Function sansdoublon(valeur)  
             Dim T_doubl, D_doubl As Object  
             Dim cptr As Integer  
             T_doubl = Split(valeur)  
             Set D_doubl = CreateObject("scripting.dictionary")  
             For cptr = 0 To UBound(T_doubl) - 1  
                  If Not D_doubl.exists(T_doubl(cptr)) Then D_doubl.Add T_doubl(cptr), "x"  
             Next  
             sansdoublon = Join(D_doubl.keys)  
        End Function  
        

        Michel
        0
        1. Bonjour Michel,

          Ma question va peut etre vous paraître ridicule, mais ma connaissance en exel est vraiment très faible et je ne vois pas comment tester ce code et ou l'insérer ?

          Merci
          Steve
          0
        2. Contributeur
          Avant, relis mon message modifié! sur ta demande: supprimer tous les mots
          0
        3. Non en fait, je ne veux que en conserver un seul sur les deux qui se repete à chaque fois.
          Comme je l'ai indiqué sur mon post, j'ai plusieurs centaine de mot différents sur environs 36 000 lignes.
          0
        4. Contributeur
          Alors fais une liste des mots à ne lire qu'une fois parce que quand tu dis "Comme je l'ai indiqué sur mon post" tu ne les a pas indiqué, par contre tu te répàtes sur les 36000 lignes...
          mais, en aucun cas, je ne voudrais te déranger en te demandant d'être précis
          0