Supprimer les mots en double d'une cellule

Bonjour à tous,

Désolé je n'ai pas trouvé de réponse dans le forum.

Voila j'ai un énorme fichier de 120000 lignes, avec des titres de produits en colonne A, et dans certaines cellule de ma colonne titre j'ai des mots en double, exemple avec ces 2 titres de produit en A1 et A2:

A1 >>> Endoscope numérique 720P Waterproof USB Endoscope Caméra d'inspection de tube de serpent avec 6 LED

A2 >>> Tablette numérique Android tablette Full HD tablette

Existe t'il une formule excel à mettre en B1 qui me permettrai de supprimer les mots en double de la cellule A1 et de ne garder que le 1er des 2 ou des 3 etc (ici en l'occurence "Endoscope" et "de"), et que je pourrais ensuite dupliquer jusqu'en bas de mes 120000 lignes?

La casse n'est pas respecté, Endoscope et endoscope sont identique.

Merci d'avance

Salut Yptsba,

petites précisions :

  • faut-il les supprimer tous comme tu le laisses entendre ou les deuxièmes et peut-être troisièmes, etc...
  • dans ton exemple, il y a une différence de casse Tablette numérique Android tablette Full HD tablette
On vire tout le monde, on sauve quelqu'un?

Autant de cas et déjà pas mal de points d'interrogation...

A+

Salut, pardon, oui on garde le 1er mot.

Donc:

Endoscope numérique 720P Waterproof USB Endoscope Caméra d'inspection de tube de serpent avec 6 LED

Devient:

Endoscope numérique 720P Waterproof USB Caméra d'inspection de tube serpent avec 6 LED

Si le mot était répété 3 fois, pareil on en garderai qu'1, le 1er.

Pour la casse effectivement on en tient pas compte, Endoscope et endoscope serait identique.

Merci

Salut yptsba,

de formule, point, je n'en suis pas capable mais VBA fait bien le boulot aussi!

La macro, dans le module de la 'Feuil1', se déclenche en cliquant simplement sur la feuille.

'
Dim tData, tSplit
Dim sData As String
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
tData = Range("A2:A" & iRow).Value
'
For x = 1 To UBound(tData)
    tData(x, 1) = Replace(tData(x, 1), Chr(160), Chr(32))
    tSplit = Split(tData(x, 1), " ")
    For Z = 0 To UBound(tSplit) - 1
        For y = Z + 1 To UBound(tSplit)
            If UCase(tSplit(Z)) = UCase(tSplit(y)) Then tSplit(y) = ""
        Next
    Next
    sData = ""
    For y = 0 To UBound(tSplit)
        sData = sData & IIf(tSplit(y) <> "" And tSplit(y) <> " ", tSplit(y) & " ", "")
    Next
    tData(x, 1) = sData
Next
Range("K2").Resize(UBound(tData), 1) = tData
'
Application.ScreenUpdating = True
'

J'allais oublier de te dire : changer la valeur [K2] en [A2] pour ton fichier pour que le résultat prenne la place de ta liste originale!

Je suppose qu'elle commence en [A2] ? A vérifier aussi!

Range("K2").Resize(UBound(tData), 1) = tData

A+

Bonjour,

c'est sympa de demander ailleurs à 23:33 alors que quelqu'un travaille pour toi ici...

eric

Salut, oui j'avais posté sur les 2 forums, je ne pensais pas que la communauté serait aussi réactive Merci curulis57 je vais tester ce matin avec mes 120000 lignes... et je te tiens au courant, mais sur ton fichier ça marche très bien encore merci

Salut, donc ça fonctionne super bien merci curulis57, t'es un pro

Rechercher des sujets similaires à "supprimer mots double"