Bonjour à vous,
Je bute sur un code que je n'arrive pas à automatiser au niveau des colonnes. En effet, je copie une plage de cellules vers une autre plage de cellule sauf que le nombre de colonne est variable. J'ai pensé à une boucle for mais je n'y arrive pas.
Voici mon code :

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
Sub test()
 
Dim Lig As Integer
 
For Lig = 9 To 20
 
        Range(Cells(9, 7), Cells(20, 10)).Value = Range(Cells(8, 7), Cells(8, 10)).Value
        Range(Cells(10, 11), Cells(20, 14)).Value = Range(Cells(9, 11), Cells(9, 14)).Value
        Range(Cells(11, 15), Cells(20, 18)).Value = Range(Cells(10, 15), Cells(10, 18)).Value
        Range(Cells(12, 19), Cells(20, 22)).Value = Range(Cells(11, 19), Cells(11, 22)).Value
        Range(Cells(13, 23), Cells(20, 27)).Value = Range(Cells(12, 23), Cells(12, 27)).Value
        Range(Cells(14, 28), Cells(20, 31)).Value = Range(Cells(13, 28), Cells(13, 31)).Value
        Range(Cells(15, 32), Cells(20, 35)).Value = Range(Cells(14, 32), Cells(14, 35)).Value
        Range(Cells(16, 36), Cells(20, 40)).Value = Range(Cells(15, 36), Cells(15, 40)).Value
        Range(Cells(17, 41), Cells(20, 44)).Value = Range(Cells(16, 41), Cells(16, 44)).Value
        Range(Cells(18, 45), Cells(20, 49)).Value = Range(Cells(17, 45), Cells(17, 49)).Value
        Range(Cells(19, 50), Cells(20, 53)).Value = Range(Cells(18, 50), Cells(18, 53)).Value
        Range(Cells(20, 54), Cells(20, 57)).Value = Range(Cells(19, 54), Cells(19, 57)).Value
 
Next Lig
 
End Sub
D'avance merci pour votre aide

En cherchant sur le site j'ai trouvé un bout de code mais le résultat renvoyé est faux :

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
Sub test()
 
    Dim TabMois
    Dim i As Long
    Dim ColDepart As Long
 
With Worksheets("Menu")
    TabMois = Application.WorksheetFunction.Transpose(.Range(.Cells(1, 1), .Cells(12, 1)))
End With
 
With Worksheets("CA")
 
    ColDepart = 7
 
    For i = LBound(TabMois) To UBound(TabMois)
 
        Range(Cells(8 + i, ColDepart), Cells(20, ColDepart + TabMois(i) - 1)).Value = _
        Range(Cells(7 + i, ColDepart), Cells(7 + i, ColDepart + TabMois(i) - 1))
 
        'Range(Cells(9, 7), Cells(20, 10)).Value = Range(Cells(8, 7), Cells(8, 10)).Value
 
    ColDepart = ColDepart + TabMois(i)
    Next i
End With
 
End Sub