Private Sub Ajout()
'On détermine la dernière ligne de la feuille "COMPTES"
Set f = Sheets("COMPTES")
LastLigne = f.Range("a65536").End(xlUp).Row + 1
'On inscrit les valeurs dans la feuille COMPTES
With f.Cells(LastLigne, 1)
.Offset(, 0).Value = CDbl(Me.CODE.Text)
.Offset(, 1).Value = CDate(Me.DATESAISIE)
.Offset(, 3).Value = Me.MOIS
.Offset(, 4).Value = Me.BUDGETREEL
.Offset(, 5).Value = Me.COMPTE
.Offset(, 6).Value = Me.POSTE
.Offset(, 9).Value = Me.NUMERO
.Offset(, 10).Value = Me.LIBELLE
.Offset(, 11).Value = Me.MODERGT
.Offset(, 14).Value = Me.BQ
If Me.DEBIT.Text <> "" Then .Offset(, 15).Value = CCur(Me.DEBIT)
If Me.CREDIT.Text <> "" Then .Offset(, 16).Value = CCur(Me.CREDIT)
End With
'On duplique la ligne si la checkbox double est validée
With f
If CB_Double.Value = True Then
.Rows(LastLigne).Copy .Cells(LastLigne + 1, 1)
.Cells(LastLigne + 1, 1).Value = .Cells(LastLigne + 1, 1) + 1
.Cells(LastLigne + 1, 5).Value = "REEL"
'On duplique les valeurs si la checkbox récursivité est validée
If CB_Recursivite.Value = True Then
.Rows(LastLigne & ":" & LastLigne + 1).Copy .Rows(LastLigne + 2).Resize(NbRecursivite.Text * 2)
'On boucle les nouvelles valeurs copiées
j = 1
For i = LastLigne + 2 To LastLigne + NbRecursivite.Text * 2 Step 2
'On modifie la date selon le critère de la combobox
If Me.MULTIPLES.Text = "ANS" Then
.Cells(i, 2).Resize(2).Value = DateAdd("yyyy", 1, CDate(.Cells(i - 1, 2).Value))
Else: .Cells(i, 2).Resize(2).Value = DateAdd("m", 1, CDate(.Cells(i - 1, 2).Value))
End If
'On modifie le texte du poste
If .Cells(i, 11).Value Like "*|*" Then
.Cells(i, 11).Resize(2).Value = Left(.Cells(i, 11).Value, InStr(.Cells(i, 11).Value, "|")) & " " & Format(.Cells(i, 2).Value, "mm/yyyy")
End If
'On boucle
j = j + 1
Next i
For i = LastLigne + 2 To LastLigne + NbRecursivite.Text * 2 + 1
.Cells(i, 1).Value = .Cells(i - 1, 1).Value + 1
.Cells(i, 4).Value = UCase(Format(.Cells(i, 2).Value, "mmmm"))
Next i
End If
End If
End With
End Sub