Fusion de ligne

hbonnisseur

XLDnaute Nouveau
Bonjour,

J'ai un petit soucis avec Excel 2007 et je ne serais pas contre un peu d'aide. Voilà, j'ai une base de données clients assez conséquente (+ de 300 000 lignes) qui me permet de savoir quelles campagnes d'emailing ont-elles été ouvertes. Le problème, c'est que si un client à ouvert des emails de 3 campagnes différentes, j'ai trois lignes par exemple. J'ai joint un tableur pour plus de clarté.

Regarde la pièce jointe Campagne emailing exemple.xlsx

Dans ce tableur, les X représentent une ouverture d'email. On peut voir que le client 1 à ouvert 3 emails de trois campagnes différentes et donc j'ai trois lignes. Ce que je voudrais savoir, c'est comment rassembler ces 3 lignes pour n'en faire plus qu'une en gardant les X.

Je vous remercie par avance pour votre aide.
 

Efgé

XLDnaute Barbatruc
Re : Fusion de ligne

Bonjour hbonnisseur et bienvenu sur le forum.
Une proposition par macro.
Le résultat se trouvera sur la feuille 2.

VB:
Private Sub CommandButton21_Click()
Dim i&, J&, L&
Dim D As Object, T As Variant, TReport As Variant
Set D = CreateObject("Scripting.dictionary")
L = 1
With Sheets("Feuil1")
    T = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(3)(1, 15))
End With

ReDim TReport(1 To UBound(T, 1), 1 To UBound(T, 2))

For i = 2 To UBound(T, 1)
    For J = 2 To UBound(T, 2)
        TReport(1, J) = T(1, J)
        If T(i, J) = "X" Then
           If Not D.Exists(T(i, 1)) Then
                L = L + 1
                TReport(L, 1) = T(i, 1)
                TReport(L, J) = "X"
                D(T(i, 1)) = L
            Else
                TReport(D(T(i, 1)), J) = "X"
            End If
        End If
    Next J
Next i

With Sheets("Feuil2")
    .UsedRange.ClearContents
    .Cells(1, 1).Resize(L, UBound(T, 2)) = TReport
    .Columns.AutoFit
    .Activate
End With
                
End Sub
Cordialement
 

Pièces jointes

  • Campagne_emailing_exemple(2).xlsm
    20.7 KB · Affichages: 21
Dernière édition:

Discussions similaires

Réponses
5
Affichages
391

Statistiques des forums

Discussions
312 652
Messages
2 090 542
Membres
104 572
dernier inscrit
saumech