Sub Macro1()
Dim Tablo() As Variant
Dim Periode As String
Dim i As Integer
Dim NbPaiements As Integer
Dim rg As Range
Periode = Sheets("Formulaire").Range("B12")
Select Case Periode
Case "Aucune": NbPaiements = 1
Case "Année": NbPaiements = 5 '5 ans
Case "Trimestre": NbPaiements = 20 '5 ans x 4 trimestres
Case "Mois": NbPaiements = 60 '5 ans x 12 mois
End Select
ReDim Tablo(1 To NbPaiements, 1 To 10)
With Sheets("Formulaire")
'initialisation du tablo
Tablo(1, 1) = .Range("B4") 'client
Tablo(1, 2) = .Range("B6") 'produit
Tablo(1, 3) = .Range("B8") 'montant facturé
Tablo(1, 4) = .Range("B10") 'mois facturation
Tablo(1, 5) = .Range("B12") 'périodicité
Tablo(1, 6) = .Range("B14") 'statut
Tablo(1, 7) = .Range("B16") 'montat achat sur CA HT
Tablo(1, 8) = .Range("B18") 'mois commande achat sur CA HT
Tablo(1, 9) = .Range("E6") 'Nb d'abt extranet
Tablo(1, 10) = .Range("H6") 'Nb de licences
If NbPaiements > 1 Then 'si plus que 1 paiement
For i = 2 To UBound(Tablo, 1)
Tablo(i, 1) = .Range("B4")
Tablo(i, 2) = .Range("B6")
Tablo(i, 3) = .Range("B8")
Tablo(i, 4) = DateSerial(Year(Tablo(i - 1, 4)), Month(Tablo(i - 1, 4)) + 60 / NbPaiements, Day(Tablo(i - 1, 4)))
Tablo(i, 5) = .Range("B12")
Tablo(i, 6) = .Range("B14")
Tablo(i, 7) = .Range("B16")
Tablo(i, 8) = .Range("B18")
Tablo(1, 9) = .Range("E6")
Tablo(1, 10) = .Range("H6")
Next i
End If
End With
'Copier dans le suivi
Set rg = Sheets("Suivi CA").Range("A65000").End(xlUp).Offset(1, 0)
rg.Resize(NbPaiements, 8) = Tablo
End Sub