Come sovrascrivere file che contiene macro senza perderle

Ho un file di Excel con delle macro, come faccio a sovrascrivere il file che contiene le macro senza perderle?

Una strada da percorrere potrebbe essere quelle di esportare le macro del file, prima di sovrascriverlo, in una Dir e dopo aver effettuato l’operazione, importare le macro sul nuovo file.

Il codice che ora posto è stato preso da alcuni siti, che pero è stato adattato, con opportune aggiunte,allo scopo.

Questo spezzone di codice non fa altro che esportare tutte le macro in una Dir del nostro file aperto di Excel.

Sub Alle_modules_export()
Dim szTargetWorkbook As String
Dim wkbTarget As Excel.Workbook
Dim cmpComponents As VBIDE.VBComponents
Dim cp As Object
szTargetWorkbook = ActiveWorkbook.Name
Set wkbTarget = Application.Workbooks(szTargetWorkbook)
Set cmpComponents = wkbTarget.VBProject.VBComponents

For Each cp In cmpComponents
cp.Export “C:\Users\Albatros\Desktop\provaimportamacro\” & cp.Name & Switch(cp.Type = 1, “.bas”, cp.Type = 3, “.frm”, cp.Type = 2, “.cls”, cp.Type = 100, “.cls”)
Next
End Sub

Le righe da 1 a 4 dichiaro le variabili, N.B.”cmpComponents As VBIDE.VBComponents” dichiaro “cmpComponents” come elemento del VBProject.

5 assegno alla varibile il nome del file

6 setto szTargetWorkbook come oggetto

7 setto wkbTarget.VBProject.VBComponents come oggetto

8 ciclo tutti gli oggetti in “cmpComponents”

9 Esporto l’oggetto trovato “cp” nella Dir “&” assegno il nome all’oggetto “&” controllo il type di oggetto ed assegno l’estenzione(1 è un file

.bas, 3 è una userform .frm, 2 è una classe .cls, 100 è il nostro file)

10 incremento il ciclo.