1004 Pastespecial of range failed

Pendant des jours, cette erreur se produit au hasard lors de la copy et de la pâte. J'ai cherché sur Internet et j'ai essayé différentes approches, mais je ne pouvais toujours pas comprendre.

Je viens d'append on error resume next après la déclaration en tant que correctif temporaire et le programme semble s'exécuter correctement, mais qu'est-ce qui a causé cela?

 iRow = wsDest.Range("A65536").End(xlUp).Row + 1 lColumn = wsSource.Cells(1, Columns.Count).End(xlToLeft).Column For sRow = 2 To wsSource.Range("A65536").End(xlUp).Row For iCol = 1 To lColumn wsDest.Cells(iRow, iCol) = wsSource.Cells(sRow, iCol) wsSource.Cells(sRow, iCol).Copy wsDest.Cells(iRow, iCol).PasteSpecial xlPasteFormats ' On Error Resume Next Next iCol wsDest.Cells(iRow, lColumn + 1) = Left(sFile, 6) iRow = iRow + 1 Next sRow 

Je suppose que tu as besoin de ça …

 lColumn = wsSource.Cells(1, Columns.Count).End(xlToLeft).Column For sRow = 2 To wsSource.Range("A65536").End(xlUp).Row wsSource.Range(wsSource.Cells(sRow, 1), wsSource.Cells(sRow, lColumn)).Copy wsDest.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteFormats wsDest.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues Next sRow 

Ou tout simplement. Pas besoin de parcourir les lignes et les colonnes.

 lRow = wsSource.Range("A65536").End(xlUp).Row lColumn = wsSource.Cells(1, Columns.Count).End(xlToLeft).Column wsSource.Range("A2", wsSource.Cells(lRow, lColumn)).Copy wsDest.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteFormats wsDest.Range("A" & Rows.Count).End(xlUp).Offset(1).PasteSpecial xlPasteValues Application.CutCopyMode = False