Je vous expose mon problème. Je suis en train de mettre en place une copie d'un sous ensemble de mes feuilles Excel d'un document A vers un autre document B. Je souhaite écrire une macro qui s'exécute rapidement.

Voici ma macro:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim sourceBook As Excel.Workbook
Dim newFile As Excel.Workbook
Dim newSheet As Worksheet
Dim astrLinks As Variant

Set sourceBook = Application.ActiveWorkbook
Set newFile = Workbooks.Add(xlWBATWorksheet)

Set newSheet = newFile.Worksheets("Feuil1")
newSheet.Name = "Scenario"
sourceBook.Sheets("Scenario").Unprotect
sourceBook.Sheets("Scenario").Range("all" & "Scenario").Copy newSheet.Range("A1")
astrLinks = newFile.LinkSources(Type:=xlLinkTypeExcelLinks)
newFile.BreakLink Name:=astrLinks(1), Type:=xlLinkTypeExcelLinks

newFile.SaveAs (sourceBook.Path & "\doc_version_light.xls")
Si j'enlève les deux lignes en roses, la macro s'exécute en 2 secondes, mais je perds mes graphes et mes images.
Si je laisse comme ça, mes graphes et images restent mais je peux prendre un café (voire 2 ou 3) entre temps....

Merci de votre collaboration


Billy