XL 2010 Concaténer des cellules sous conditions

Elodie195

XLDnaute Occasionnel
Bonjour,

Je sollicite votre aide pour une macro EXCEL.

J'ai un fichier excel avec à l'intérieur un tableau de 9 colonnes.

Les colonnes qui nous intéresse sont les colonnes 1, 4 et 9.

En effet, je souhaiterais que lorsque le numéro de dossier de la colonne 4 est présent 2 ou 3 fois, cela concatène les données des colonnes 1 et 9 (séparé par une virgule).

J'ai fait un onglet "A obtenir" dans le fichier exemple, ce sera plus parlant.

Merci de votre aide.

Bonne journée.
 

Pièces jointes

  • TEST_FUSION.xlsm
    10.2 KB · Affichages: 47

Elodie195

XLDnaute Occasionnel
Bonjour,

La colonne 2 avec les MSD/MGD/PPG peut être ignorée. Cette valeur n'a pas d'importance. On peut même l'effacer avant la concaténation, il n'y a aucune incidence.

Le but c'est juste d'avoir les colonnes A et I fusionnées en fonction d'un même nom de dossier en colonne D :)

Bonne journée.
 

laetitia90

XLDnaute Barbatruc
bonjour Elodie,Bertrand:)
copy en j2 a adapter
VB:
Sub es()
Dim t(), i As Long, m As Object, c As Byte, z
  Set m = CreateObject("Scripting.Dictionary")
  t = Range("a2:i" & Cells(Rows.Count, 1).End(3).Row)
   For i = 1 To UBound(t)
   z = t(i, 4)
   If m.Exists(z) Then
   t(m(z), 1) = t(m(z), 1) + t(i, 1)
   t(m(z), 9) = t(m(z), 9) + t(i, 9)
   Else
   x = x + 1
   For c = 1 To 9: t(x, c) = t(i, c): Next c:   m(z) = x
   End If
   Next i
  [j2].Resize(x, 9) = t
End Sub
 

Statistiques des forums

Discussions
312 361
Messages
2 087 610
Membres
103 606
dernier inscrit
lolo1970