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 : 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:
[SIZE=2][COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

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

Pièces jointes

Re : SUPPRIMER des mots en double dans des cellules

Bonsoir le forum et cephalotus,

Voici une essai avec une autre fct VBA, j'ai désactivé la macro évenementielle

Bonne soirée,

Ninbihan

Edit: Bonsoir MDF, désolé, je ne t'avais pas vu !!
Reedit: J'ai modifié la macro qui ne prenait pas en compte une chaine avec seulement 2 mots identiques
 

Pièces jointes

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

Bonsoir ninbihan,
ninbihan à dit:
Edit: Bonsoir MDF, désolé, je ne t'avais pas vu !!
il n'y a pas de mal 😉

Je vois que nous faisons tous deux la même analyse du problème (avec cependant une différence quant au traitement).

Mais tu as raison de préciser que la macro évènementielle (Worksheet_Change en Feuille 1) n'a plus lieu d'être. Je l'ai aussi désactivée sans toutefois le préciser. C'est pourtant une précision importante.

Cordialement,
 
- 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
172
Réponses
4
Affichages
521
Retour