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 :
D'avance merci pour votre aide
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
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
Partager