Bonjour Bilewell et bienvenu, bonjour le forum,
Je ne comprends à quoi sert le tableau 1 ?
Une solution VBA (j'ai supprimé la première lignes au préalable) :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Integer 'déclare la variable I (Incrément)
Set O = Worksheets("Sheet1") 'définit l'nglet O
O.Range("L1").CurrentRegion.Offset(1, 0).ClearContents 'efface les anciennes données
TV = O.Range("H1").CurrentRegion 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le ditionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
D(TV(I, 1)) = D(TV(I, 1)) + 1 'alimente le dictionnaire D
Next I 'prochaine ligne de la boucle
O.Range("L2").Resize(D.Count, 1).Value = Application.Transpose(D.Keys) 'renvoie dans L2 redimensionnée les clés du dictionnaire D
O.Range("M2").Resize(D.Count, 1).Value = Application.Transpose(D.Items) 'renvoie dans M2 redimensionnée les items du dictionnaire D
For I = 2 To D.Count + 1 'boucle sur toutes les ligne éditées de la colomme M (en partant de la seconde)
'rajoute "activité" ou "activités" en fonction du nombre
O.Cells(I, "M") = IIf(O.Cells(I, "M") = 1, O.Cells(I, "M") & " activité", O.Cells(I, "M") & " activités")
Next I 'prochaine ligne de la boucle
End Sub