Sub FormatterDonneesPourTCD()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim rg1 As Range, rg2 As Range
Application.ScreenUpdating = True
Set ws1 = ActiveWorkbook.Sheets(1)
Set ws2 = ActiveWorkbook.Sheets(2)
Set rg1 = ws1.Range("A3") 'début des données
Set rg2 = ws2.Range("A2") 'début du nouveau tableau, ligne 1 sera pour les titres
'on boucle à travers toutes les données
Do Until IsEmpty(rg1)
'Salaire
rg2 = rg1 'nom
rg2.Offset(0, 1) = rg1.Offset(0, 1) 'mois
rg2.Offset(0, 2) = rg1.Offset(0, 2) 'montant salaire
rg2.Offset(0, 3) = "104/11110-01" 'code
'Charges sociales
rg2.Offset(1, 0) = rg1 'nom
rg2.Offset(1, 1) = rg1.Offset(0, 1) 'mois
rg2.Offset(1, 2) = rg1.Offset(0, 3) 'montant charges sociales
rg2.Offset(1, 3) = "104/11310-01" 'code
'Charges pension
rg2.Offset(2, 0) = rg1 'nom
rg2.Offset(2, 1) = rg1.Offset(0, 1) 'mois
rg2.Offset(2, 2) = rg1.Offset(0, 4) 'montant charges pension
rg2.Offset(2, 3) = "104/11310-21" 'code
Set rg2 = rg2.Offset(3, 0) 'on décale de 3 lignes pour prochaines données
Set rg1 = rg1.Offset(1, 0)
Loop
Application.ScreenUpdating = False
End Sub