Quindi tu parti da un file che contiene un certo foglio ("FOCUS ORIGINALE"), che contiene "collegamenti" ad altri fogli dello stesso file.
Di questo certo foglio ne crei una copia in un nuovo workbook; cosi' facendo, i collegamenti ad altri fogli del file diventano pero' collegamenti esterni; tu vorresti che questi collegamenti esterni vengano eliminati e sostituiti col valore corrente.
Se e' cosi' allora mi pare che il nuovo workbook avra' sempre e solamente 1 solo collegamento esterno (verso il file di partenza), per cui dovrebbe bastare usare il secondo suggerimento che diedi nella mia prima risposta. Cioe' sostituire l'attuale istruzione (spalmata su 2 righe)
ActiveWorkbook.BreakLink Name:="C:\FOCUS FB\Analisi 4.8o.xlsm", Type:=xlExcelLinks con
- Codice: Seleziona tutto
XLLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(XLLinks) Then
ActiveWorkbook.BreakLink Name:=XLLinks(1), Type _
:=xlExcelLinks
End If
Se vuoi qualcosa di piu' analitico, allora potresti intervenire nella parte iniziale della macro con queste due aggiunte:
- Codice: Seleziona tutto
'altre istruzioni
NomeFile = Range("D14").Value
Application.DisplayAlerts = False
cwb = ActiveWorkbook.FullName '++++
ActiveSheet.Copy
With ActiveWorkbook
.SaveAs Filename:=MyDir & "" & NomeFile
.BreakLink Name:=cwb, Type:=xlExcelLinks '++++
.Close savechanges:=False
End With
'altre istruzioni
(vedi le righe marcate +++)
Cioe' tieni conto del nome del file da cui sei partito e lo usi per rompere il link. Potrai cosi' eliminare la successiva istruzione
ActiveWorkbook.BreakLink Name:="C:\FOCUS\etc etcSpero che abbia indovinato qualcosa...
Ciao