Salut Grisan,
nouvelle proposition!
Pour éviter un scan aléatoire des préfixes (SCF,...), je postule que le libellé est de façon systématique assemblé autour des tirets. A vérifier, bien sûr, ainsi que d'autres présences de tirets comme dans l'avant-dernière colonne du catalogue.
Private Sub cmdGO_Click()
'
Dim tTabO, tTabF()
'
iRow = Cells(Rows.Count, 1).End(xlUp).Row
tTabO = Range("A1:A" & iRow)
'
Application.ScreenUpdating = False
'
For x = 1 To UBound(tTabO)
If InStr(tTabO(x, 1), "-") > 1 Then
iIdx = iIdx + 1
ReDim Preserve tTabF(3, iIdx)
tTabF(0, iIdx - 1) = tTabO(x - 1, 1)
sFlag = Trim(Right(tTabO(x, 1), Len(tTabO(x, 1)) - InStr(tTabO(x, 1), "-")))
tTabF(1, iIdx - 1) = UCase(Left(sFlag, 1)) & Right(sFlag, Len(sFlag) - 1)
End If
If InStr(tTabO(x, 1), ",") > 0 Then tTabF(2, iIdx - 1) = tTabO(x, 1)
Next
Range("D:F").ClearContents
Range("D1:F" & iIdx) = WorksheetFunction.Transpose(tTabF)
Columns("D:F").AutoFit
'
Application.ScreenUpdating = True
'
End Sub
A+