supprimer les doublons texte

chifounou

XLDnaute Occasionnel
Bonjour, j'ai une cellule A1 qui contient une chaine de texte de cet accabit :
email1,email1,email2,email2,email3,email3,email4,email4

les emails sont en doubles et toujours 2 par 2 à la suite

quelle fonction appliquer pour que la chaine de texte soit transformée en :
email1,email2,email3,email4

merci d'avance !
 

Roland_M

XLDnaute Barbatruc
Bonsoir,

à condition que ce soit bien comme tu le montres dans cet ordre !?
exemple avec une fonction:
en A1 email1,email1,email2,email2,email3,email3,email4,email4
en A2 = TraiteAdresMail(A1)
ce qui donne: email1,email2,email3,email4

Function TraiteAdresMail(Chaine As Variant)
On Error Resume Next
Dim Tablo As Variant, M$
Tablo = Split(Chaine, ",")
For I = 1 To UBound(Tablo) Step 2: M$ = M$ & Tablo(I) & ",": Next
If Len(M$) > 1 Then M$ = Left(M$, Len(M$) - 1)
TraiteAdresMail = M$
End Function
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour chifounou, Roland_M :),

Une autre fonction qui permet des entrées dans n'importe quel ordre:
VB:
Function OterDoublons(x) As String
Dim T, D, i&
   T = Split(x, ",")
   Set D = CreateObject("scripting.dictionary"): D.comparemode = vbTextCompare
   For i = 0 To UBound(T)
      If Trim(T(i)) <> "" Then D(T(i)) = ""
   Next i
   OterDoublons = Join(D.keys, ",")
End Function
 

Pièces jointes

  • chifounou- ôter doublons- v1.xlsm
    14.8 KB · Affichages: 44

chifounou

XLDnaute Occasionnel
Bonsoir mapomme et Rolan_M,

Merci à vous deux pour le coup de main. J'ai donc appris qu'on pouvait créer des fonctions personnalisées : cool :)

Petit soucis: mon but est en fait de récupérer la liste d'emails - pas seulement de l'afficher visuellement - mais aussi de séparer les emails entre eux sous forme de colonne et que leur texte apparaisse à la place d'une fonction (pour pouvoir copier-coller les cellules ensuite).

Dans mon fichier joint, l'objectif est en rouge (depuis C6 vers le bas)

Merci d'avance si vous pouvez boucler la boucle (hors e mes cordes)
 

Pièces jointes

  • recupererTrierDoublons.xlsm
    168.3 KB · Affichages: 37

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour chifounou,
(...) Petit soucis: mon but est en fait de récupérer la liste d'emails - pas seulement de l'afficher visuellement - mais aussi de séparer les emails entre eux sous forme de colonne et que leur texte apparaisse à la place d'une fonction (pour pouvoir copier-coller les cellules ensuite). (...)

En utilisant la fonction OterDoublons de la v1, une macro nommée : Sub EnColonne()
Cettre macro comporte 4 constantes à adapter à votre cas réel.
VB:
Sub EnColonne()
Const FeuilSource = "helper", CellSource = "B3"
Const Feuilcible = "helper", CellCible = "C6"
Dim T

   T = Split(OterDoublons(Sheets(FeuilSource).Range(CellSource)), ",")
   With Sheets(Feuilcible)
      .Range(.Range(CellCible), .Cells(.Rows.Count, .Range(CellCible).Column)).ClearContents
      If UBound(T) >= 0 Then .Range(CellCible).Resize(UBound(T) + 1) = Application.Transpose(T)
   End With
End Sub

nota : Si la cellule source peut comporter plus de 65 536 mails différents, me le signaler pour adapter le code. En effet la fonction Transpose bogue au delà de 65 536 éléments à transposer. Comme la source est la valeur d'une seule cellule, je pense que ce cas ne se produira pas :rolleyes:.
 

Pièces jointes

  • chifounou- ôter doublons- v2.xlsm
    172.8 KB · Affichages: 38
Dernière édition:

chifounou

XLDnaute Occasionnel
:oops:

Y'aurait-il un moyen que dans la dernière macro, en plus :
* la casse des emails écrits en majuscules (je n'avais pas fait attention désolé) soit transformée en minuscules (symboles , et @ devant être laissés intacts évidemment)
* et que la colonne verticale d'emails soit triée alphabétiquement ?

:oops:

Merci encore !
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir chifounou,
(...) Y'aurait-il un moyen que dans la dernière macro, en plus :
* la casse des emails écrits en majuscules (je n'avais pas fait attention désolé) soit transformée en minuscules (symboles , et @ devant être laissés intacts évidemment)
* et que la colonne verticale d'emails soit triée alphabétiquement ? (...)

Voir fichier v3 joint.
 

Pièces jointes

  • chifounou- ôter doublons- v3.xlsm
    18.9 KB · Affichages: 41

Discussions similaires

Réponses
26
Affichages
1 K

Statistiques des forums

Discussions
314 190
Messages
2 107 002
Membres
109 735
dernier inscrit
Mounskad