2017-03-22 1 views
1

Je l'ai utilisé la macro suivante, que j'ai trouvé sur un autre forum pour copier une feuille dans plusieurs autres feuilles:Copie feuille de calcul à plusieurs classeurs - formule fait référence

Option Explicit 
Public Sub CopySheetToAllWorkbooksInFolder() 

    Dim sourceSheet As Worksheet 
    Dim folder As String, filename As String 
    Dim destinationWorkbook As Workbook 

    'Worksheet in active workbook to be copied as a new sheet to the destination woorkbook 

    Set sourceSheet = ActiveWorkbook.Worksheets("Sheet1") 

    'Folder containing the destination workbooks 

    folder = "F:\temp\excel\" 

    filename = Dir(folder & "*.xls", vbNormal) 
    While Len(filename) <> 0 
     Debug.Print folder & filename 
     Set destinationWorkbook = Workbooks.Open(folder & filename) 
     sourceSheet.Copy before:=destinationWorkbook.Sheets(1) 
     destinationWorkbook.Close True 
     filename = Dir() ' Get next matching file 
    Wend 
End Sub 

La feuille de calcul source, que je veux copier dans les autres feuilles de calcul de destination ont des formules (liées à d'autres feuilles de calcul dans le fichier source). Après avoir exécuté la macro, les formules dans la feuille de calcul de destination, ont toujours des références à la feuille de calcul source au lieu de la feuille de calcul de destination.

Comment est-ce que je pourrais modifier la macro afin d'ajuster les références au nouveau classeur?

Merci beaucoup d'avance!

Best, Arthur

Répondre

0

Vous pouvez tout simplement supprimé les références insérées après avoir copié la feuille. Par exemple, si votre classeur source est nommé "Source.xlsx":

Cells.Replace What:="=[Source.xlsx]", Replacement:="=", LookAt:=xlPart _ 
, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ 
ReplaceFormat:=False