Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

SUPPRIMER des mots en double dans des cellules

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cephalotus

XLDnaute Occasionnel
Bonsoir le forum,

😕 J'ai une colonne avec un certain nombre de lignes. Dans certaines des cellules de cette colonne, j'ai des mots en qui se répètent un certain nombre de fois.

Je voudrais qu'il y ne reste qu'un mot de chaque sorte par cellule.

exemple:
mot-va-erreur-mot-ne

🙂 Résultat:
mot-va-erreur-ne
 
Re : SUPPRIMER des mots en double dans des cellules

Bonjour Allegro50, le forum


Oui, en effet, dans cette application, les mots sont toujours séparés par des "-".

Les mots peuvent etre en double ou triple, mais normalement pas plus !

🙂 Merci pour toutes vos réponses🙂
 
Re : SUPPRIMER des mots en double dans des cellules

bonjour cephalotus
salut allegro50

voila une macro a tester

Code:
Sub otedoublons()
For Each cel In Selection
texte = cel.Value
Dim nouveau As Collection
Set nouveau = New Collection
x = InStr(texte, "-")
While x <> 0
On Error Resume Next
nouveau.Add Left(texte, x - 1), key:=CStr(Left(texte, x - 1))
On Error GoTo 0
texte = Right(texte, Len(texte) - x)
x = InStr(texte, "-")
Wend
For n = 1 To nouveau.Count
newtexte = newtexte & nouveau(n) & "-"
Next n
cel.Value = newtexte & texte
Next cel
End Sub
 
Re : SUPPRIMER des mots en double dans des cellules

re

cette version doit etre meilleure

mais a tester quand même

Code:
Sub otedoublons()
For Each cel In Selection
texte = cel.Value
Dim nouveau As Collection
Set nouveau = New Collection
x = InStr(texte, "-")
While x <> 0
On Error Resume Next
nouveau.Add Left(texte, x - 1), key:=CStr(Left(texte, x - 1))
On Error GoTo 0
texte = Right(texte, Len(texte) - x)
x = InStr(texte, "-")
Wend
On Error Resume Next
nouveau.Add texte, key:=CStr(texte)
On Error GoTo 0
For n = 1 To nouveau.Count
newtexte = newtexte & nouveau(n) & "-"
Next n
cel.Value = Left(newtexte, Len(newtexte) - 1)
Next cel
End Sub
 
Re : SUPPRIMER des mots en double dans des cellules

Bonjour PierreJean,

Merci pour ta réponse. Le seul problème, c'est que je ne sais pas comment faire pour enregistrer une macro, je ne pas non plus comment l'utiliser ensuite !😕

Voici un exemple, avec ici un explemple de mots en double.

🙂 Merci pour ta réponse et ton explication🙂
 

Pièces jointes

Dernière édition:
Re : SUPPRIMER des mots en double dans des cellules

rebonjour PierreJean, le forum,

Je viens de faire des tests avec les deux macros. Mais, je ne suis pas sur de ce que j'avance, car je ne sais pas me servir des macros, ni les enregistrer !😕

Pour faire le test j'ai fouillé dans excel pour voir comment marche les macros !!

Le résultat de mes "tests", est que les macros me semblent dupliquer et associer des lignes en elles, tout en supprimant les doublons.

Mais, je ce que j'avance sur le résultat..n'est pas forcément la réalité !

🙂 Merci pour vos réponses🙂
 
Re : SUPPRIMER des mots en double dans des cellules

Bonjour Cephalotus, Pierrejean et le forum,

J'ai effectué une adaptation dans ton fichier.
Si tu ne comprends pas le code VBA, je pourrai te l'expliquer mais j'ai mis des commentaires dans le code.

A+
 
Dernière édition:
Re : SUPPRIMER des mots en double dans des cellules

Bonjour lacorse33, le forum,

Ce que tu as fait fonctionne parfaitement. Peut-on éviter de supprimer certain caractère, car en fait, pour cette application, j'ai besoin de conserver les "-" !

🙂 Merci pour ta réponse🙂
 
Dernière édition:
Re : SUPPRIMER des mots en double dans des cellules

Re bonjour à tous,

Dans la fonction RemplacerChaine, tu enlèves le "- 1" à la ligne suivante :
' Récupération du mot avant le 1er caractère spécial
strChaineTrouvee = Left(strChaineDeb, intTrouveCar - 1)

A+
 
Re : SUPPRIMER des mots en double dans des cellules

Bonjour à tous,

une version récursive de la fonction :
Code:
Function ch_ss_doublon(vchaine)
If InStr(vchaine, "-") = 0 Then
    ch_ss_doublon = ch_ss_doublon & vchaine
Else
    ch_ss_doublon = Left(vchaine, InStr(vchaine, "-")) & ch_ss_doublon(Replace(Replace(vchaine, Left(vchaine, InStr(vchaine, "-")), ""), "-" & Left(vchaine, InStr(vchaine, "-") - 1), ""))
End If
End Function

manque plus qu'une version matricielle !

A+
 
Dernière édition:
Re : SUPPRIMER des mots en double dans des cellules

Re bonjour lacorse33, le forum,

😕 Je mets beaucoup de bonne volonté pour me débrouiller tout seul, mais encore une fois je dois faire appelle à tes connaissances, car je n'y arrive pas !

Ce que tu as fait fonctionne parfaitement, surtout avec la suppression du "-1", c'est parfait 🙂

Je suis arrivé tout de même (par hasard) à éditer la macro et à faire ta modification. Par contre, je n'arrive plus à rééditer ta macro !

Pourrais-tu m'expliquer la méthode pour :

Copier / sauvegarder et la reproduire dans d'autres fichiers.

🙂 Merci pour ta, vos réponses🙂
 

Pièces jointes

Dernière édition:
Re : SUPPRIMER des mots en double dans des cellules

Bonjour Lacorse33, le forum,

Tout d'abord, je tiens te remercier pour ta réponse et surtout ton explicatif.

J'ai donc compris en lisant celui-ci à quoi correspondent les différentes parties de Visual Basic.

De plus, je ne pouvais pas suivre les étapes que tu m'avais indiquées, car la colonne de gauche qui reprend les Feuilles, modules, etc. n'était pas visible.

Peux-tu m'expliquer maintenant la suite de l'enregistrement de la VBA.

Ce que j'ai fait:

1- J'ai ouvert mes documents

2- J'ai copier/coller le code de la Feuille 1 (ton doc ou se trouve la vba) vers ma Feuille 1

3- Dans mon fichier, j'ai crée un module, et j'y ai copier/coller la formule qui se trouve dans ton fichier et j'y ai supprimé le "-1" comme tu l'as écrit plus haut.

😕 C'est à partir de cette étape ou je ne sais pas quoi faire, car je pense qu'il faut peut être l'enregistrer en macro ???

Peux-tu m'expliquer la suite des étapes pour que je puisse me servir de ta VBAdans d’autres fichiers.

🙂 Merci pour ta, vos réponses🙂
 
Dernière édition:
Je n'arrive pas à faire marcher la macro !!!

Bonsoir le forum,

Dans la colonne A j'ai un certain nombre de lignes. Certaines cellules de cette colonne, j'ai des mots (mot-va-erreur-mot-ne) qui se répètent un certain nombre de fois.

Je voudrais qu'il y ne reste qu'un mot de chaque par cellule.

Exemple:
mot-va-erreur-mot-ne-mot-ne-erreur

Résultat:
mot-va-erreur-ne

Je n'arrive pas à faire fonctionner (bog, visiblement), ni à modifier la macro jointe pour conserver mes traits d'unions !!

Merci pour vos réponses.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
867
Réponses
17
Affichages
876
Réponses
5
Affichages
173
Réponses
4
Affichages
521
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…