J'essaie de créer une macro qui copyra un contenu de cellule d'un classur vers un autre. Le problème est que, dans le classur original, il existe des liens vers une autre feuille de calcul dans ce classur et, après que ma macro effectue le travail, les liens se réfèrent à la feuille du file source. Par exemple, dans le file source, j'ai =CONCATENATE(A1,Sheet2!A1)
et après la copy, le contenu de la cellule devient =CONCATENATE(A1,[Source.xlsm]Sheet2!A1)
Ho pour éviter d'apparaître [Source.xlsm]
?
Sub Copy() Dim wbk As Workbook Range("A1:B1").Copy Set wbk = Application.Workbooks.Open(ThisWorkbook.Path & "/subdir/destination.xlsx") With wbk.Sheets("Sheet1") Range("A1").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False End With End Sub
Merci d'avance
Utilisez la méthode Range.Replace pour supprimer [Source.xlsm] des formules.
With wbk.Sheets("Sheet1") .Range("A1").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False .Cells.Replace What:="[Source.xlsm]", Replacement:="", LookAt:=xlPart, _ MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End With
btw, vous avez manqué le .
.Range("A1").PasteSpecial...