bonjour, ma macro contient une forme de bug
celle ci est assez simple, elle copie une ligne i et la colle 9 fois en dessous de la ligne i (puis applique des modifs à l'une des cases)
afin de faire cela dans l'ordre, le programme va toujours chercher la meme ligne de facon redondante. hors de facon récurente le programme insert une ligne placé 4 ou 5 ligne plus haut (en passant par la partie en rouge.)
auriez vous une explication


macro :

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Sub duplicate()

Dim i As Integer

For i = [470] To [2] Step -1

    If Cells(i, 4) <> Cells(i - 1, 4) Then
        If Right(Left(Cells(i, 4), 3), 1) = "1" And Right(Cells(i, 4), 1) = "2" Then
    
            Rows(i - 1).Select
            Selection.Copy
            Selection.Insert
            Cells(i, 5).Select
            Selection = Left(Cells(i, 4), 3) & "C09"
    
            Rows(i).Select
            Selection.Copy
            Selection.Insert
            Cells(i, 5).Select
            Selection = Left(Cells(i, 4), 3) & "C09"
    
            Rows(i + 1).Select
            Selection.Copy
            Selection.Insert
            Cells(i, 5).Select
            Selection = Left(Cells(i, 4), 3) & "C09"
    
        End If
    
        Rows(i - 1).Select
        Selection.Copy
        Selection.EntireRow.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A03"
    
        Rows(i - 1).Select
        Selection.Copy
        Selection.EntireRow.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A03"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A03"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A02"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A02"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A02"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A01"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A01"
        
        Rows(i - 1).Select
        Selection.Copy
        Selection.Insert
        Cells(i, 5).Select
        Selection = Left(Cells(i, 5), 6) & "A01"        
    End If

Next i

End Sub