1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Sub Developpement_Tableau_Periode()
Dim Src As Worksheet
Dim Dest As Worksheet
Dim P As Range
Dim D As Range
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim NbLigne As Integer
Dim NbLigne2 As Integer
Dim NbAnnee As Integer
Set Src = ThisWorkbook.Sheets("Sheet1")
Set Dest = ThisWorkbook.Sheets("Sheet2")
Set P = Src.Range("B3")
Set D = Dest.Range("A2")
NbLigne2 = 0
With Src
NbLigne = .Cells(.Rows.Count, 2).End(xlUp).Row - 3 ' On compte le nombre de ligne de la colonne B
End With
For i = 0 To 3
D.Offset(-1, i) = P.Offset(0, i) 'ici on crée l'intitulé des colonnes du deuxieme tableau (pas vraiment nécessaire, tu peux le faire manuellement mais bon voilà)
Next i
For j = 1 To NbLigne
'******************************Ici on calcule le nbre d'années sur la période**********************************
P.Offset(j, 5) = Left(P.Offset(j, 2), 4)
P.Offset(j, 6) = Right(P.Offset(j, 2), 4)
NbAnnee = P.Offset(j, 6) - P.Offset(j, 5)
'******************************Ici on rempli les lignes pour chaque période************************************
For k = 0 To NbAnnee
D.Offset(k + NbLigne2, 0) = P.Offset(j, 0)
D.Offset(k + NbLigne2, 1) = P.Offset(j, 1)
D.Offset(k + NbLigne2, 2) = P.Offset(j, 5) + k
D.Offset(k + NbLigne2, 3) = P.Offset(j, 3)
Next k
With Dest
NbLigne2 = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' On compte le nombre de ligne de la colonne A
End With
Next j
End Sub |
Partager