Bonjour,
Oui on peut utiliser 2 boucles for, voici une proposition. J'ai également utilisé une arraylist, c'est plus simple pour créer la liste en colonne E.
Sub Etiquettes()
Dim vals As Variant
With ThisWorkbook.Worksheets(1).Range("A2:B2")
vals = Range(.Cells, .End(xlDown)).Value2
End With
Dim outVals As Object
Set outVals = CreateObject("System.Collections.ArrayList")
Dim i As Long, j As Long
For i = 1 To UBound(vals, 1)
For j = 1 To vals(i, 2)
outVals.Add vals(i, 1)
Next j
Next i
With ThisWorkbook.Worksheets(1).Range("E2")
.Resize(outVals.Count, 1).Value2 = WorksheetFunction.Transpose(outVals.ToArray)
End With
End Sub
Ajoutez ce code dans un module et liez la macro Etiquettes à un bouton. Attention, le code suppose que les données sont sur la 1e feuille (la + à gauche) du classeur (Worksheets(1)).