Bonjour Antoine, le Forum
Ton problème ne vient pas de "ThisWorkbook.Activate" en début de code, c'est une instruction Standard qui doit être acceptée normalement.
De toute manière, si tu souhaites progresser en VBA, qui est le language des "Objects", il faut apprendre à les utiliser et les déclarer comme il faut. L'enregistreur de Macro, hélas arrête là son assistance, puisqu'il ne se base pas sur des déclarations de Set d'Objets, ou de Variables.
Voici un code où je me suis efforcé d'utiliser des noms faciles à comprendre pour les Objects :
Sub Testcopy()
Dim WorkBookCible As Workbook
Dim WorkSheetCible As Worksheet
Dim WorkBookSource As Workbook
Dim WorkSheetSource As Worksheet
Dim PlageSource As Range
Dim CheminWorkBookSource As String
CheminWorkBookSource = "C:\Mes Documents\MonClasseurSource.xls"
Set WorkBookCible = ThisWorkbook
Set WorkSheetCible = WorkBookCible.Sheets("Sheet1")
WorkSheetCible.UsedRange.ClearContents
Workbooks.Open CheminWorkBookSource
Set WorkBookSource = ActiveWorkbook
Set WorkSheetSource = WorkBookSource.Sheets("Sheet1")
Set PlageSource = WorkSheetSource.UsedRange
PlageSource.Copy WorkSheetCible.Range("A1")
WorkBookSource.Close False
End Sub
Voilà si celà peut t'aider, il faut lire l'aide VBA (Touche F1 en sélectionnant des mots dans l'éditeur (VBE)) et il y a aussi ce Forum XLD, une vraie mine d'or pour apprendre et comprendre.
Bon Dimanche
@+Thierry