Sub Macro1()
Dim cel As Range 'déclare la variable cel
Application.ScreenUpdating = False 'masque les changements à l'écran
'copie le tableau de l'onglet "Feuil1" dans l'onglet "Feuil2
Sheets("Feuil1").Range("A1").CurrentRegion.Copy Sheets("Feuil2").Range("A1")
With Sheets("feuil2") 'prend en compte l'onglet "Feuil2"
'trie le tableau par ordre décroissant des pourcentages
.Range("A1").CurrentRegion.Sort Key1:=.Range("B1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'boucle sur toutes les cellules éditées cel de la colonne A contenant un pourcentage
For Each cel In .Range("A1:A" & .Range("B65536").End(xlUp).Row)
'concatene en D1 la valeur de la cellule avec la valeur de D1
.Range("D1").Value = .Range("D1").Value & ", " & cel.Value
Next cel 'prochaine cellule de la boucle
.Range("D1").Value = Mid(.Range("d1").Value, 3) 'supprimme la première virgule et l'espace en D1
.Range("A:C").Delete 'supprime les colonnes A à C
End With 'fin de la prise en compte de l'onglet "Feuil2"
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub