Extraire les doublons d'une chaine de caractere ....

Marco65

XLDnaute Nouveau
bonjour j'ai une colonne de 345 lignes qui contient des cellules.Dans chaque cellule j'ai une liste de chaîne de caractères (variable).Je voudrais extraire la liste sans doublon.

Soient les donnees dans la colonne A

A1 = YR4291 YR5511 YR3212
A2 = YR4101 YR5511 YR4291 XX5311
A3 = YR4101 YR5315 YR5511

Je souhaiterai faire une Extraction sous forme de liste dans la colonne B sans doublons :

YR4101
YR4291
YR5511
YR3212
XX5311
YR5315

Merci de votre aide
Marco65
 

JCGL

XLDnaute Barbatruc
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour à tous,

Bienvenue sur XLD

Tes données en A et avec ce code :
VB:
Sub Test()
    Columns("A:A").TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, Tab:=True
    Range("F1:F500").Cut Destination:=Range("E501")
    Range("G1:G500").Cut Destination:=Range("E1002")
    Range("H1:H500").Cut Destination:=Range("E1503")
    Range("I1:I500").Cut Destination:=Range("E2004")
    ActiveSheet.Range("$E$1:$E$2505").RemoveDuplicates Columns:=1, Header:=xlNo
    Range("E1:E2504").Sort Key1:=Range("E1")
    Range("E1").Select
End Sub

A+ à tous
 

Marco65

XLDnaute Nouveau
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour à tous,

Bienvenue sur XLD

Tes données en A et avec ce code :
VB:
Sub Test()
    Columns("A:A").TextToColumns Destination:=Range("E1"), DataType:=xlDelimited, Tab:=True
    Range("F1:F500").Cut Destination:=Range("E501")
    Range("G1:G500").Cut Destination:=Range("E1002")
    Range("H1:H500").Cut Destination:=Range("E1503")
    Range("I1:I500").Cut Destination:=Range("E2004")
    ActiveSheet.Range("$E$1:$E$2505").RemoveDuplicates Columns:=1, Header:=xlNo
    Range("E1:E2504").Sort Key1:=Range("E1")
    Range("E1").Select
End Sub

A+ à tous

Merci pour cette reponse rapide .Je teste ce bout de code ce matin.Merci beaucoup JCGL
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour,

Avec fonction perso:

-Sélectionner D2:D20
-=sansdoublons(A2:A20)
-valider avec maj+ctrl+entrée

Avantages par rapport à une macro:

-La source et la destination peuvent modifiés par l'utilisateur sans connaître VBA
-Utilisable pour différents champs
-Si on modifie la source, la Maj du résultat est automatique

JB
 

Pièces jointes

  • SansDoublonsItemsMult.xls
    42.5 KB · Affichages: 73
Dernière édition:

Marco65

XLDnaute Nouveau
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour,

Avec fonction perso:

-rapide
-maj automatique

-Sélectionner D2:D20
-=sansdoublons(A2:A20)
-valider avec maj+ctrl+entrée



JB

Merci JB cela marche tres bien.Par contre j'ai une colonne A qui va bien au-dela de 20 lignes.Du coup comment faire pour etendre la matrice au dela de 20 ? Desole je suis un peu novice sur VBA.En tout cas merci de la reponse qui correspond exactement à ce je veux faire.
Marco65
 

Marco65

XLDnaute Nouveau
Re : Extraire les doublons d'une chaine de caractere ....

Desole JB j'ai compris pour modifier la matrice d'arrivée de 20 lignes à ce que j'ai besoin il faut selectionner toute la matrice d'arrivée et remplacer le 20 par le nombre de ligne voulu.Mille fois merci je vais gagner un temps fou.:cool:
 

laetitia90

XLDnaute Barbatruc
Re : Extraire les doublons d'une chaine de caractere ....

bonjour tous :):):)
une autre version macro

Code:
Sub es()
Dim m As Object, t, i As Long, c
 Set m = CreateObject("Scripting.Dictionary")
 For Each c In Range("A1:A" & [A65536].End(3).Row)
 t = Split(c, " ")
 For i = 0 To UBound(t):  m(t(i)) = "": Next i
 Next c
 [b1].Resize(m.Count, 1) = Application.Transpose(m.Keys)
End Sub
 

Marco65

XLDnaute Nouveau
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour,

Avec fonction perso:

-Sélectionner D2:D20
-=sansdoublons(A2:A20)
-valider avec maj+ctrl+entrée

Avantages par rapport à une macro:

-La source et la destination peuvent modifiés par l'utilisateur sans connaître VBA
-Utilisable pour différents champs
-Si on modifie la source, la Maj du résultat est automatique

JB



Bonjour la fonction marche plutôt bien mais je n'arrive pas à modifier la matrice.J'envoi en PJ le fichier excel que je souhaiterai modifier pour les 2 colonnes à traiter. Merci de votre aide.
 

Pièces jointes

  • SansDoublons_Marco.xls
    103 KB · Affichages: 65

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour,

cf PJ

-Sélectionner D2:D300
=sansdoublons(A2:A10000)
-valider avec maj+ctrl+entrée

JB
 

Pièces jointes

  • Copie de SansDoublons_Marco.xls
    149.5 KB · Affichages: 55

Marco65

XLDnaute Nouveau
Re : Extraire les doublons d'une chaine de caractere ....

Bonjour,

cf PJ

-Sélectionner D2:D300
=sansdoublons(A2:A10000)
-valider avec maj+ctrl+entrée

JB

Merci JB mais j'ai voulu adapter ta fonction qui marche mais au moment de faire maj+ctrl+ entree cela ne marchait pas.La touche Ctrl est celle de gauche ou à droite de la barre espace. Je vais faire le tour sur le forum pour m'entrainer de mon coté.Mais en attendant merci beaucoup pour votre aide.
 

Discussions similaires