Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Fusionner des lignes en doubles( avec ID comme clé )

Jerry590

XLDnaute Nouveau
Bonjour je viens vers vous car j'aimerais savoir si il existe une formule qui fusionne les ligne en double tout en gardant les informations des lignes(autre doublons).
je m'explique bien:

j'ai un fichier present comme suit(exemple) :
2564986 Iyves bal ouest paris daniel@gmail.com
2564986 yves bale sud

résultat que j'aimerais avoir est : 2564986 : Iyves yves I bal bale I ouest sud I paris I daniel@gmail.com

j'aimerais savoir s'il y a la solution dans un premier temps en formule ,et si cela nexiste pas le vba est la bien venu.

Merci pour votre compréhension
 

Pièces jointes

  • EXEMPLE.xlsx
    9.2 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Jerry, Merinos,
Une autre approche en VBA.
Le résultat se fait en automatique par sélection de la feuil2, avec :
VB:
Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    ' Efface matrice résultat
    [A:F].ClearContents
    ' Transfert données dans feuil2 et tri sur ID, puis tranfert dans array, et efface matrice
    DL = Sheets("feuil1").Range("A65500").End(xlUp).Row
    Range("A1:F" & DL) = Sheets("feuil1").Range("A1:F" & DL).Value
    Range("A:F").Resize(DL).Sort key1:=Range("a1"), order1:=xlAscending, Header:=xlYes
    T = Range("A2:F" & DL)
    [A:F].ClearContents
    ' Comparaison ID et concaténation
    ReDim Tout(UBound(T)): IndTout = 0
    For L = 1 To UBound(T) - 1
        If T(L, 1) = T(L + 1, 1) Then
            Tout(IndTout) = T(L, 1)
            For i = 2 To 6
                Tout(IndTout) = Tout(IndTout) & " | " & T(L, i) & "  " & T(L + 1, i)
            Next i
            Tout(IndTout) = Mid(Tout(IndTout), 1, Len(Tout(IndTout)) - 1) ' Efface dernier |
            IndTout = IndTout + 1
        End If
    Next L
    ' Restitution array dans feuille et redimensionne colonne
    Range("A1").Resize(UBound(Tout)).Value = Application.Transpose(Tout)
    Columns.AutoFit
End Sub
 

Pièces jointes

  • EXEMPLE (5).xlsm
    76 KB · Affichages: 1
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…