Bonjour à tous !

Voici ma procédure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Private Sub btn_dupliquer_Click()
Dim i As Integer
Dim dateAmortDero As String
Dim DerniereLigne As Long

DerniereLigne = Cells(Rows.Count, 1).End(xlUp).RowdateAmortDero = "31/12/2009"

 For i = 13 To DerniereLigne
    If Range("A" & i).Value <> "" Then
        If Range("A" & i).Value = Range("A" & i + 1).Value Then
            'Insertion de deux lignes cas où deux lignes existent déjà
            Call Insertion_Amort2Lignes(i)
            Range("B" & i + 2).Value = dateAmortDero
            '-Montant + VNC
            Range("J" & i + 2).Value = -Range("J" & i).Value + Range("N" & i)
            Range("C" & i + 2).Value = "Amortissement"
            Range("C" & i + 2).EntireRow.Copy
            Selection.Insert Shift:=xlDown
            Range("B" & i + 3).Value = dateAmortDero
            '-Dero
            Range("J" & i + 3).Value = -Range("R" & i).Value
            Range("C" & i + 3).Value = "Dérogatoire"
            'Incrémenter le i de façon à reprendre le parcours après les lignes insérées
            Rows(i + 2).Select
            Selection.Copy
            Rows(i + 4).Select
            Selection.Insert Shift:=xlDown
            Range("M" & i + 4).Value = "COMPTA"
            Rows(i + 3).Select
            Selection.Copy
            Rows(i + 5).Select
            Selection.Insert Shift:=xlDown
            Range("M" & i + 5).Value = "COMPTA"
            i = i + 5
            DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row        Else
            'Insertion d'une ligne cas avec une ligne
            Call Insertion_Amort1Ligne(i)
            Range("B" & i + 1).Value = dateAmortDero
            '- Montant + VNC
            Range("J" & i + 1).Value = -Range("J" & i).Value + Range("N" & i)
            Range("C" & i + 1).Value = "Amortissement"
            'Incrémenter le i de façon à reprendre le parcours après les lignes insérées
            i = i + 1
            DerniereLigne = Cells(Rows.Count, 1).End(xlUp).Row        End If
    End If
 Next i
En gros cette procédure me permet d'ajouter des lignes dans un tableau et de procéder à une mise en forme.
Je fais donc une boucle POUR pour parcourir mon tableau je parcours jusqu'à la fin de mon tableau (DerniereLigne)... cependant comme je fais des ajouts ma fin de tableau change ...j'ai donc recalculé la fin de tableau à chaque fin de traitement (dans ma variable DerniereLigne) cependant ma boucle pour ne le prend pas en compte...

Comment faire??

Merci d'avance