Alignement de 4 colonnes en fonction des doublons

Bonjour, je me tourne vers vous car je suis face à un problème qui me fait perdre énormément de temps et dont je n'ai pas encore trouvé la solution malgré pas mal de recherches...

J'ai un fichier excel composé de 4 colonnes comme ceci :

A B C D

Lus10000465 Lus10000465 Lus10000465 Lus10000465

Lus10001280 Lus10001280 Lus10001280 Lus10001280

Lus10001845 Lus10002169 Lus10002169 Lus10001845

Lus10002197 Lus10002197 Lus10002197 Lus10001950

et je voudrais aligner les cellules identiques pour obtenir ceci :

A B C D

Lus10000465 Lus10000465 Lus10000465 Lus10000465

Lus10001280 Lus10001280 Lus10001280 Lus10001280

Lus10001845 Lus10001845

Lus10001950

Lus10002169 Lus10002169

Lus10002197 Lus10002197 Lus10002197

En fait je veux qu'une ligne soit créée pour chaque valeur "Lusxxxxxxxx" identique (par ordre alphabétique) tout en gardant la position de la colonne.

Exemple : pour Lus10002169 je veux qu'une ligne soit créée uniquement pour cette valeur et qu'elles soient disposées dans les colonnes B et C qui correspondent à leur position initiale dans le premier fichier.

J'espère avoir été clair ^^

Ci besoin je peux transmettre le fichier complet.

Merci d'avance pour vos réponses!!

Bonjour Sheirka et bienvenue sur le forum,

Ton exemple avec ton cas réel n'est pas très parlant, je me permets donc de modifier l'énoncé pour être sûr de ne pas commettre d'erreur:

Supposons que tes données soient des A, B, C etc... (A le plus petit, F le plus grand)

A.A.A.A

B.B.B.B

D.C.C.D

F.E.F.E

Tu veux alors récupérer (où "*" = vide et "." est le séparateur de colonne)

A.A.A.A

B.B.B.B

*.C.C.*

D.*.*.D

*.E.*.E

F.$.F.*

Correct?

Merci de joindre un fichier avec tes données, j'aurai alors une proposition pour toi.

Merci beaucoup pour cette réponse rapide, et oui c'est exactement ça que je veux faire tu as tout à fait compris!

Je te joins mon fichier (en fait j'en ai une dizaine de différents mais si je comprend la logique sur le premier je réussirai à le faire sur les suivants), si tu as la moindre question n'hésite pas.

Et merci encore ça va beaucoup m'aider!

80oliver-emb.xlsx (60.89 Ko)

Voilà ma proposition:

169sheirka.xlsm (30.10 Ko)

Plusieurs remarques:

- Le nom des feuilles n'est pas important pour le code, mais les feuilles en elle-même sont importantes. Ne t'amuses pas à en supprimer/recréer, le code ne fonctionnera probablement plus.

- Le code prend en compte les données qui sont placées dans la plage "A1:D999", tu peux décaler le numéro de ligne, mais je te déconseille de changer les colonnes, parce que ça ne fonctionnera plus correctement.

"A2:D500" ' est tout à fait envisageable

"B1:E500" ' doit être évité, ou alors d'autres parties du code seront à changer

- j'affiche des "X" plutôt que répéter 4 fois la références. Si tu veux absolument la mise en page de ton premier post, il faudra simplement remplacer

For Each clef In maCollection.Keys
    Set donnee = maCollection.Item(clef)
    Feuil2.Cells(numLigne, 1) = "Lus" & clef
        If donnee.colonne1 = True Then Feuil2.Cells(numLigne, 2) = "X"
        If donnee.colonne2 = True Then Feuil2.Cells(numLigne, 3) = "X"
        If donnee.colonne3 = True Then Feuil2.Cells(numLigne, 4) = "X"
        If donnee.colonne4 = True Then Feuil2.Cells(numLigne, 5) = "X"
    numLigne = numLigne + 1
Next clef

par

For Each clef In maCollection.Keys
    Set donnee = maCollection.Item(clef)
        If donnee.colonne1 = True Then Feuil2.Cells(numLigne, 1) = "Lus" & clef
        If donnee.colonne2 = True Then Feuil2.Cells(numLigne, 2) = "Lus" & clef
        If donnee.colonne3 = True Then Feuil2.Cells(numLigne, 3) = "Lus" & clef
        If donnee.colonne4 = True Then Feuil2.Cells(numLigne, 4) = "Lus" & clef
    numLigne = numLigne + 1
Next clef

J'attends ton retour

Super ça fonctionne niquel!

Je viens de traiter toutes les données de mes différents fichiers en quelques minutes!

Merci beaucoup pour ton aide et surtout pour ta rapidité!!

Bonne soirée, à toi!

Rechercher des sujets similaires à "alignement colonnes fonction doublons"