PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelLoggbokLoggbok
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2022-10-30 18:44
 

 Håller på med att göra en loggbok till jobbet. 

Den skall skapa en ny flik varje dag fungerar bra.

Den första varje månad skall en ny workbook skapas och ett kalkylark följer med  och det fungerar men vba code följer inte med.

Hur får jag med den?

Mvh felix

 

Nytt inlägg
 2022-10-31 08:08
 

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

 

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelLoggbokLoggbok

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter