utiliser ma deuxième solution serait déjà mieux
Sub Cumul()
t1 = Time
For i = 1 To 20000
' On copie les données
With ActiveWorkbook
.Sheets("feuil1").Select: Range(Cells(i, 4), Cells(i, 26)).Copy
.Sheets("feuil2").Select: Range(Cells(i, 2), Cells(i, 24)).Select: Selection.PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
End With
Next
MsgBox (Time - t1)
End Sub
Sub test()
Application.ScreenUpdating = False
With ActiveWorkbook
.Sheets("feuil1").Select: Range(Cells(1, 4), Cells(2000, 26)).Copy
.Sheets("feuil2").Select: Range(Cells(1, 2), Cells(2000, 24)).PasteSpecial _
Operation:=xlPasteSpecialOperationAdd
.Sheets("feuil2").Range("A1").Activate
End With
End Sub
hth
bye
stephane