Macro incrémentation de valeurs correspondant à des dates

Bonjour,

Mon problème est le suivant :

Via un userform rempli par un utilisateur, une ligne est créée dans un tableau.

Parmi les informations saisies, une des cellule de la ligne nouvellement créée contient une valeur numérique correspondant à un jour, une autre à un mois, une autre à une année et une autre à une périodicité en mois.

Je voudrais que lorsque je lance la macro, celle ci duplique la ligne créée par le userform en incrémentant les valeur des mois et années pour chaque ligne créée jusqu'à atteindre 2020 comme dans l'exemple ci joint.

Merci beaucoup pour votre aide

Cordialement

15classeur1test.xlsx (12.02 Ko)

lors de l'insertion de ta ligne, affecte le numéro de ligne à lig et lance cette procédure

With Sheets("Feuil1")
lig = 2 'ici repère ta ligne inséréé
While .Cells(lig, 5) < 2021 Or .Cells(lig, 6) + .Cells(lig, 4) < 12
.Rows(lig + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
.Range("A" & lig + 1) = .Range("A" & lig)
.Range("B" & lig + 1) = .Range("B" & lig)
.Range("C" & lig + 1) = .Range("C" & lig)
.Range("D" & lig + 1) = .Range("D" & lig)
If .Range("F" & lig) + .Range("D" & lig) > 12 Then
.Range("E" & lig + 1) = .Range("E" & lig) + 1
.Range("F" & lig + 1) = .Range("F" & lig) + .Range("D" & lig) - 12
Else
.Range("E" & lig + 1) = .Range("E" & lig)
.Range("F" & lig + 1) = .Range("F" & lig) + .Range("D" & lig)
End If
.Range("G" & lig + 1) = .Range("G" & lig)
.Range("H" & lig + 1) = .Range("H" & lig)
.Range("I" & lig + 1) = .Range("I" & lig)
lig = lig + 1
Wend
End With

C'est parfait un (très) grand merci !

Rechercher des sujets similaires à "macro incrementation valeurs correspondant dates"