Bonjour Florian, bonjour le forum,
Essaie comme ça :
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 I As Integer 'déclare la variable I (Incrément)
Dim P(1 To 5) As String 'déclare le tableau 5 variables de P(1) à P(5) (Partie)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les ligne I du tabelau des valeurs TV
P(1) = CStr(Format(Split(TV(I, 1), "-")(0), "00")) 'définit la partie 1 P(1)
P(2) = CStr(Format(Split(TV(I, 1), "-")(1), "000")) 'définit la partie 2 P(2)
P(3) = CStr(Format(Split(TV(I, 1), "-")(2), "00")) 'définit la partie 3 P(3)
P(4) = CStr(Format(Split(TV(I, 1), "-")(3), "0000")) 'définit la partie 4 P(4)
P(5) = CStr(Format(Split(TV(I, 1), "-")(4), "000")) 'définit la partie 5 P(5)
TV(I, 1) = P(1) & "-" & P(2) & "-" & P(3) & "-" & P(4) & "-" & P(5) 'redéfinit la donnée TV(I,1)
Next 'prochaine ligne de la boucle
O.Range("A1").Resize(UBound(TV, 1), 1).Value = TV 'renvoie dans A1 le tableau TV
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub