Hej Felix
Ganska säker på att kod som ligger på blad följer med, medan kod som ligger i moduler inte gör detta. Oavsett om koden ligger på blad eller modul så finns den att hitta i vbcomponents, och går att loopa över för att hitta samtliga dina moduler om så önskas. Nedan kod lyfter över EN modul, till en NY arbetsbok och måste modifieras för att passa dina önskemål. Originalkoden hittade jag här: https://stackoverflow.com/questions/40956465/vba-to-copy-module-from-one-excel-workbook-to-another-workbook
mvh
Christian
Sub RunCopyModule()
Dim wb As Workbook: Set wb = ThisWorkbook
'Sätter destinationsbok till att bli en ny arbetsbok, denna behöver du anpassa till att istället bli din loggbok.
Dim wbDest As Workbook: Set wbDest = Workbooks.Add
'här skriver du vilken modul Som ska flyttas över, dessa två rader kan repeteras så att du lyfter över alla dina moduler.
'VIKTIGT, option explicit kommer att kopieras, så om du har ställt in vbe för att skriva ut detta automatiskt så får du en dublett på den raden.
Dim vc As VBComponent: Set vc = wb.VBProject.VBComponents("NamnPåModulAttMigrera")
Call CopyMacrosToExistingWorkbook(wbDest, vc)
End Sub
Function CopyMacrosToExistingWorkbook(NewWb As Workbook, vc As VBComponent)
'Sätter källan för VBProjektet samt destinationen
Dim SourceVBProject As VBIDE.VBProject, DestinationVBProject As VBIDE.VBProject
Set SourceVBProject = ThisWorkbook.VBProject
Set DestinationVBProject = NewWb.VBProject
'Sätter Källan för vilken modul som ska kopieras, samt var den ska klistras in
Dim SourceModule As VBIDE.CodeModule, DestinationModule As VBIDE.CodeModule
Set SourceModule = vc.CodeModule
Set DestinationModule = DestinationVBProject.VBComponents.Add(vbext_ct_StdModule).CodeModule
'Skriver kod till Destinationsmodul
With SourceModule
DestinationModule.AddFromString .Lines(1, .CountOfLines)
End With
End Function