Sub Macro1()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim x As Byte 'déclare la variable x (incrément)
Dim y As Byte 'déclare la variable y (incrément)
With Sheets("Feuil1") 'prend en compte l'onglet "Feuil1"
For Each cel In .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row) 'boucle 1 : sur toutes les cellules éditées de la colonne A
If cel.Value <> "" Then 'condition : si la cellule n'est pas vide
cel.Offset(0, 1).Value = Left(cel.Value, 5) 'place en colonne B les 5 premiers caractères de cel
x = UBound(Split(cel.Value, ";")) 'définit la variable x (le nombre d'occurrences du caractère ";")
If x = 0 Then GoTo suite 'si x est nul va à l'étiquette "suite"
For y = 1 To x 'boucle 2 : sur le nombre de ";"
cel.Offset(0, 1).Value = cel.Offset(0, 1).Value & ";" & Trim(Left(Split(cel.Value, ";")(y), 6)) 'rajoute à la valeur de la cellule le code commune suivi de ";"
Next y 'prochaine ";" de la boucle 2
suite: 'étiquette
End If 'fin de la condition
Next cel 'prochaine cellle de la bucle 1
End With 'fin de la prose en compte de l'onglet "Feuil1"
End Sub