• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

bestaande macro via macro kopieeren naar ander workbook

Status
Niet open voor verdere reacties.

Kristinho1978

Gebruiker
Lid geworden
2 jul 2015
Berichten
96
Ik heb een .xlsm file met daarin o.a. een rapport en twee macro's.
Een van de macro's (''CreateReportCopy'') kopieert het rapport naar een nieuwe .xlsm file (ReportNew).
De andere macro (''CreateLayout'') zorgt ervoor dat het rapport in een juiste layout verschijnt.

Sub CreateReportcopy()

Sheets("Pivot").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Function").ClearAllFilters
ActiveSheet.PivotTables("PivotTable1").PivotFields("Function").CurrentPage = _
"(All)"
Sheets("Pivot").Select
Sheets("Pivot").Copy
ActiveWorkbook.SaveAs Filename:= _
"C:\ReportNew.xlsm" _
, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWindow.Close

End Sub

Nu zou ik graag hebben dat de macro Layout ook meegekopieerd wordt naar de nieuwe .xlsm file, zodat degene die de file ontvangt, deze macro niet op zijn of haar computer hoeft te hebben maar de macro gelijk via een button in de file ReportNew kan aanroepen. [De button wordt al meegekopieerd vanuit het originele rapport. De inhoud van de mee te kopieren macro CreateLayout is verder niet relevant.]

Hoe kan ik de macro CreateLayout 1 op 1 via de macro CreateReportCopy meekopieren? Welke regel(s) moet ik toevoegen?
-
 
Een mogelijkheid: In plaats van dat ene werkblad kopieren het gehele bestand "kopieren": Bestand eerst opslaan, e.e.a. eruit weghalen wat je niet nodig hebt en vervolgens via SaveAs onder andere naam opslaan.
 
ja, klopt, is een optie, maar is vrij bewerkelijkaangezien het een groot bestand is.Bovendien moet ik dan ook macro's gaan verwijderen uit de VBA code. Denk niet dat het daarmee gemakkelijker wordt :)
 
ik heb er, bij gebrek aan beter, maar voor gekozen om te macro handmatig in ReportNew te zetten...
 
Je zou ook nog een leeg bestand met de macro kunnen maken en het werkblad daarin kunnen kopieren.
 
Obv de gegeven info zou ik de macro CreateLayout opnemen in de codemodule van sheet "Pivot". De code is dan gebonden aan die sheet en gaat bij een copy altijd mee.
De knop waarmee de gebruiker CreateLayout activeert moet dan wel een ActiveX knop zijn, maar beter is een hyperlink.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan