Oh, je viens de regarder ton code, zorinhosantiago !
Tu es un hérétique de la programmation !
De quel droit te permets-tu de remplir le presse-papier de l'utilisateur à son insu ?
De plus parce que tu utilises les objets en cours de sélection, tu ralentis énormément ton programme au point que tu es obligé d'utiliser ScreenUpdating.
Je te propose de voir TON code, légèrement revu à la lumière des éléments précédents :
Code:
' // Ca, c'est très bien !!! :)
Option Explicit
' // Le code zorinhosantiago, revu pour ne
' // pas utiliser le presse papier.
Sub test2()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "recap" Then
ws.Range(ws.Range("A1"), _
ws.Range("A1").SpecialCells(xlCellTypeLastCell)).Copy _
Destination:=Worksheets("recap").Range("A65536").End(xlUp).Offset(1, 0)
End If
Next
End Sub
Voici ce que je propose, et qui n'est pas mieux que le précédent :
Code:
Option explicit
' // Code équivalent, plein de variables inutiles pour bien comprendre
Sub test_3()
Dim ws As Worksheet
Dim ws_recap As Worksheet
Dim cell_source_1er As Range
Dim cell_source_der As Range
Dim cell_recap_cible As Range
Set ws_recap = Worksheets("recap")
For Each ws In Worksheets
If ws <> ws_recap Then
Set cell_source_1er = ws.Range("A1")
Set cell_source_der = cell_source_1er.SpecialCells(xlCellTypeLastCell)
Set cell_recap_cible = ws_recap.Range("A65536").End(xlUp).Offset(1, 0)
ws.Range(cell_source_1er, cell_source_der).Copy Destination:=cell_recap_cible
End If
Next
End Sub