Macro : concaténation et suppression de doublon

Bonjour à tous,

Etant nouveau sur ce forum, n'hésitez pas à me conseiller sur les habitudes et les manières de faire (j'ai évidemment lu la charte).

Mon fichier (voir feuille "Brut" du fichier annexe) est composé de deux colonnes : une colonne "numéro" composé de doublon (1,1,1,1,2,2,2,3,3,3) et une colonne "objet" composé de lettres (A,B,C,D,E,F ....)

L'objectif est le suivant : Je souhaite supprimer les doublons de la colonne "numéro" et concaténer en utilisant un séparateur ("###") les valeurs de la colonne "objet" en les regroupant par numéro. (voir feuille "Résultat" du fichier annexe).

Par exemple :

1 A###B###C###D###E###F

2 K###L###M###N###O

3 F###G###H###I###J

L'idéal selon moi serait de réaliser une macro (10000 lignes à traiter) qui réalise la tâche suivante : Si le "numéro" de la ligne inférieure est égale à celui de la ligne active alors il faut concaténer la valeur "objet" de la ligne inférieur dans la ligne active et supprimer la ligne inférieur et cela en réalisant une boucle sur toutes les lignes.

J'ai testé (voir feuille "Test" du fichier annexe) une formule du style : =SI(A2=A3;CONCATENER(B2;"###";B3);B2)

Mais je suis encore loin du compte.

Je remercie par avance ceux qui pourront m'apporter leur aide.

72concatener.xlsx (10.60 Ko)

bonjour,

une solution possible

Sub aargh()
    Set ws1 = Sheets("brut")
    Set ws2 = Sheets("résultat")
    sep = "###"
    dl = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    ws1.Rows("1:" & dl).Copy ws2.Rows(1)
    With ws2
        For i = dl - 1 To 2 Step -1
            If .Cells(i + 1, 1) = .Cells(i, 1) Then
                .Cells(i, 2) = .Cells(i, 2) & sep & .Cells(i + 1, 2)
                .Rows(i + 1).Delete shift:=xlUp
            End If
        Next i
    End With
End Sub

Bonjour h2so4,

Merci beaucoup pour votre aide.

C'est exactement ce que je voulais.

Excellente continuation.

Rechercher des sujets similaires à "macro concatenation suppression doublon"