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
|
Sub Test()
Dim Fe1 As Worksheet
Dim Fe2 As Worksheet
Dim Plage As Range
Dim Plage2 As Range
Dim Plage3 As Range
Dim I As Long
Dim J As Long
'défini les deux feuilles de travail, Fe1 est la feuille source
'et Fe2 est la feuille cible (celle recevant les valeurs)
Set Fe1 = Worksheets("Feuil1")
Set Fe2 = Worksheets("Feuil2")
With Fe1
'défini la plage sur la feuille source sur la colonne A seulement mais on s'en fout, c'est pour avoir le nombre de lignes
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
'initialise J car pas de ligne numéro 0
J = 1
'boucle sur les lignes de la plage source
For I = 1 To Plage.Rows.Count
'partage la ligne en cours en deux plages (A à G et H à AY)
Set Plage2 = .Range(.Cells(I, 1), .Cells(I, 7))
Set Plage3 = .Range(.Cells(I, 8), .Cells(I, 51))
'inscrit les valeurs dans la feuille cible
Fe2.Range(Fe2.Cells(J, 1), Fe2.Cells(J, 7)).Value = Plage2.Value
Fe2.Range(Fe2.Cells(J + 1, 1), Fe2.Cells(J + 1, 44)).Value = Plage3.Value
'saute la ligne qui vient de recevoir les valeurs du Range Plage3
J = J + 2
Next I
End With
End Sub |
Partager