Bonjour à tous !
Voici ma procédure :
En gros cette procédure me permet d'ajouter des lignes dans un tableau et de procéder à une mise en forme.
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
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
Partager