supprimer mots ou expressions en double dans une cellule

Le
jipeache
Bonjour,

j'ai dans une colonne, parfois, des mots ou groupes de mots en double
dans la même cellule, avec d'autres mots, séparés par une virgule.
Comment supprimer les doublons dans la cellule et garder bien sur un
exemplaire du mot.

Exemple :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Coups mortels,
Attentats à la pudeur, Incendie volontaire, Attentats à la pudeur"
doit devenir :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Attentats à la
pudeur, Incendie volontaire".

Merci d'avance.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Mgr Banni
Le #5003901
pas drôle le contenu de cette colonne....
je n'ai pas la réponse à la question posée mais voudrais juste soulever un
problème de sémantique : selon moi, "coups mortels" ne peut s'écrire au
pluriel ; supposons, en effet, que le premier coup ait donné la mort, les
suivants ne sont plus mortels....
ça me fait penser à ce que j'avais pu lire, il y a longtemps et je ne sais
plus où, au sujet de Timisoara : les nombreux morts ont été tués par balles
Mgr T.B.

"jipeache"
Bonjour,

j'ai dans une colonne, parfois, des mots ou groupes de mots en double
dans la même cellule, avec d'autres mots, séparés par une virgule.
Comment supprimer les doublons dans la cellule et garder bien sur un
exemplaire du mot.

Exemple :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Coups mortels,
Attentats à la pudeur, Incendie volontaire, Attentats à la pudeur"
doit devenir :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Attentats à la
pudeur, Incendie volontaire".

Merci d'avance.
Daniel.C
Le #5003741
Bonjour.
Sur une idée de JB :

Sub test()
Dim Dico, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
On Error Resume Next
For Each c In Range("A1", Range("A65536").End(xlUp))
tablo = Split(c, ",")
For Each Item In tablo
Item = Application.Trim(Item)
Dico.Add Item, Item
Next Item
c = ""
For Each k In Dico.keys
c = c & ", " & k
Next
c = Left(Right(c, Len(c) - 2), Len(c) - 2)
Next c
End Sub

Cordialement.
Daniel
"jipeache"
Bonjour,

j'ai dans une colonne, parfois, des mots ou groupes de mots en double
dans la même cellule, avec d'autres mots, séparés par une virgule.
Comment supprimer les doublons dans la cellule et garder bien sur un
exemplaire du mot.

Exemple :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Coups mortels,
Attentats à la pudeur, Incendie volontaire, Attentats à la pudeur"
doit devenir :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Attentats à la
pudeur, Incendie volontaire".

Merci d'avance.
jipeache
Le #5003631
On 26 oct, 12:02, "Daniel.C"
Bonjour.
Sur une idée de JB :

Sub test()
Dim Dico, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
On Error Resume Next
For Each c In Range("A1", Range("A65536").End(xlUp))
tablo = Split(c, ",")
For Each Item In tablo
Item = Application.Trim(Item)
Dico.Add Item, Item
Next Item
c = ""
For Each k In Dico.keys
c = c & ", " & k
Next
c = Left(Right(c, Len(c) - 2), Len(c) - 2)
Next c
End Sub

Cordialement.
Daniel
Bonjour,

Merci mais ca marche et ca marche pas ;-)
L'élimination des doublons présents en Col1 se fait bien dans les
cellules en col2 mais le résultat obtenu est ajouté au résultat
suivant et ainsi de suite.
Il y a cumul des résultats., vers la fin j'obtiens tous les mots
possibles une seule fois.
Merci d'avance
.

Daniel.C
Le #5003491
Exact. Essaie :

Sub test()
Dim Dico, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
On Error Resume Next
For Each c In Range("A1", Range("A65536").End(xlUp))
tablo = Split(c, ",")
For Each Item In tablo
Item = Application.Trim(Item)
Dico.Add Item, ""
Next Item
c = ""
For Each k In Dico.keys
c = c & ", " & k
Next
c = Left(Right(c, Len(c) - 2), Len(c) - 2)
For Each k In Dico.keys
Dico.Remove k
Next
Next c
End Sub

Daniel
"jipeache"
On 26 oct, 12:02, "Daniel.C"
Bonjour.
Sur une idée de JB :

Sub test()
Dim Dico, c As Range
Set Dico = CreateObject("Scripting.Dictionary")
On Error Resume Next
For Each c In Range("A1", Range("A65536").End(xlUp))
tablo = Split(c, ",")
For Each Item In tablo
Item = Application.Trim(Item)
Dico.Add Item, Item
Next Item
c = ""
For Each k In Dico.keys
c = c & ", " & k
Next
c = Left(Right(c, Len(c) - 2), Len(c) - 2)
Next c
End Sub

Cordialement.
Daniel
Bonjour,

Merci mais ca marche et ca marche pas ;-)
L'élimination des doublons présents en Col1 se fait bien dans les
cellules en col2 mais le résultat obtenu est ajouté au résultat
suivant et ainsi de suite.
Il y a cumul des résultats., vers la fin j'obtiens tous les mots
possibles une seule fois.
Merci d'avance
.

JB
Le #5003451
Bonjour,
Sous forme d'une fonction:

Function SansDoublonsCellule(c)
Set mondico = CreateObject("Scripting.Dictionary")
tbl = Split(c, ",")
For Each i In tbl
If Not mondico.Exists(Trim(i)) Then mondico.Add Trim(i), Trim(i)
Next i
temp = ""
For Each e In mondico.items
temp = temp & e & ","
Next
SansDoublonsCellule = Left(temp, Len(temp) - 1)
End Function

http://cjoint.com/?kAoPvWHkSI

JB

On 26 oct, 09:13, jipeache
Bonjour,

j'ai dans une colonne, parfois, des mots ou groupes de mots en double
dans la même cellule, avec d'autres mots, séparés par une virgule.
Comment supprimer les doublons dans la cellule et garder bien sur un
exemplaire du mot.

Exemple :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Coups mortels,
Attentats à la pudeur, Incendie volontaire, Attentats à la pudeur"
doit devenir :
"Viol, Vol d'argent, Rien au dossier, Coups mortels, Attentats à la
pudeur, Incendie volontaire".

Merci d'avance.


jipeache
Le #5003391
On 26 oct, 14:41, JB
Bonjour,
Sous forme d'une fonction:

Function SansDoublonsCellule(c)
Set mondico = CreateObject("Scripting.Dictionary")
tbl = Split(c, ",")
For Each i In tbl
If Not mondico.Exists(Trim(i)) Then mondico.Add Trim(i), Trim(i)
Next i
temp = ""
For Each e In mondico.items
temp = temp & e & ","
Next
SansDoublonsCellule = Left(temp, Len(temp) - 1)
End Function

http://cjoint.com/?kAoPvWHkSI

JB


Merci à vous 2.
Les 2 fonctionnent, (chacun ses petits inconvénients ;-))) :
la macro remplace la version initiale
la fonction ne remet pas l'espace après la virgule.)

Parfait et encore merci.

JB
Le #5003381
Function SansDoublonsCellule(c)
Set mondico = CreateObject("Scripting.Dictionary")
tbl = Split(c, ",")
For Each i In tbl
If Not mondico.Exists(Trim(i)) Then mondico.Add Trim(i), Trim(i)
Next i
temp = ""
For Each e In mondico.items
temp = temp & e & ", "
Next
SansDoublonsCellule = Left(temp, Len(temp) - 2)
End Function

http://cjoint.com/?kApTvexUkV

JB


On 26 oct, 15:36, jipeache
On 26 oct, 14:41, JB




Bonjour,
Sous forme d'une fonction:

Function SansDoublonsCellule(c)
Set mondico = CreateObject("Scripting.Dictionary")
tbl = Split(c, ",")
For Each i In tbl
If Not mondico.Exists(Trim(i)) Then mondico.Add Trim(i), Trim(i)
Next i
temp = ""
For Each e In mondico.items
temp = temp & e & ","
Next
SansDoublonsCellule = Left(temp, Len(temp) - 1)
End Function

http://cjoint.com/?kAoPvWHkSI

JB


Merci à vous 2.
Les 2 fonctionnent, (chacun ses petits inconvénients ;-))) :
la macro remplace la version initiale
la fonction ne remet pas l'espace après la virgule.)

Parfait et encore merci.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme