Ik ben opzoek naar een VBA code voor: twee tabbladen kopiëren + macro's

Status
Niet open voor verdere reacties.

VincentKE

Nieuwe gebruiker
Lid geworden
15 okt 2015
Berichten
2
Beste lezer / probleemoplosser,

Op Excel heb ik een systeem ontwikkeld waarmee wij onze orders automatisch kunnen verwerken/bevestigen/factureren.

Nu ben ik opzoek naar een code die twee tabbladen wegschrijft op een schijf met bijbehordende VBA codes.

Op dit moment is de code als volgt:

Code:
Sub OA_PAKBON_OPSLAAN_XLSX()
Dim sBestandsnaam As String
Dim sPadnaam As String

sBestandsnaam = "OA " & Sheets("Algemeen").Range("F14").Value & " " & Sheets("Algemeen").Range("T4").Value & ".xlsx"
sPadnaam = "Z:\Afhandeling\OA 2015\"

Sheets(Array("ORDER AFHANDELING", "PAKBON")).Copy

Sheets("ORDER AFHANDELING").Select
Range("B1:AI1").Select
ActiveSheet.SaveAs Filename:=sPadnaam & sBestandsnaam
ActiveWorkbook.Close

Vragen:
- Hoe zorg ik ervoor dat het bestand op wordt geslagen als een bestand met macro's (xslm extentie). Daarbij moeten deze macro's mee worden genomen:


Code:
Sub OA_PAKBON_PRINTEN()
    
    Sheets("ORDER AFHANDELING").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False, _
    IgnorePrintAreas:=False
    
    Sheets("PAKBON").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
        
End Sub


Sub OA_PRINTEN()

    Sheets("ORDER AFHANDELING").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False, _
    IgnorePrintAreas:=False

End Sub

Sub PAKBON_PRINTEN()

    Sheets("PAKBON").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False

End Sub

Alvast dank voor jullie hulp!

Groeten,
VincentKE
 
Laatst bewerkt:
Welkom bij HelpMij :)
Zolang je als .xlsx wegschrijft, krijg je natuurlijk nooit je macro's mee :). Kijk eens op de site van Rondebruin, die heeft een aantal methodes die je kunt gebruiken.
 
Hallo OctaFish,

Zelfs als ik er .xlsm van maak wordt het niet als een bestand met macro's weggeschreven. Ook op Rondebruin staan geen oplossingen.
Kortom het werkt nog steeds niet.

Heeft iemand anders wellicht een oplossing?

Ik zou echt blij zijn met een oplossing.

Groeten,
Vincent
 
Wat ik zou doen maar ik ben een VBA leek, is een duplicaat file maken van je workbook die noem je dan WB 2 ofzo. Zorg wel dat je VBA code NIET in een van de sheets staat maar in het workbook zelf. Daarna knikker je alle tabbladen eruit behalve de 2 die je wilt saven en dat save je alsnog. Als het resultaat je bevalt doe je dat nog een keer maar dan met de makrorecorder aan en dan heb je een werkbare code die je onder een knop kan zetten in je originele sheet met wat aanpassingen indien gewenst .
 
Heb je hier wat aan?

Code:
Sub OA_PAKBON_OPSLAAN_XLSM()
Dim sBestandsnaam As String, sPadnaam As String
Dim wb As Workbook, dest As Workbook
Dim Source As Range
Const Module_Name    As String = "Module1"         ' Name of the module to transfer
Const TempFile       As String = Environ$("Temp") & "\Module1.bas" ' temp textfile

    sBestandsnaam = "OA " & Sheets("Algemeen").Range("F14").Value & " " & Sheets("Algemeen").Range("T4").Value & ".xlsm"
    sPadnaam = "Z:\Afhandeling\OA 2015\"
    
    Set wb = ActiveWorkbook
    wb.VBProject.VBComponents(Module_Name).Export TempFile
    Set dest = Workbooks.Add(xlWBATWorksheet)
    dest.VBProject.VBComponents(Module_Name).Import TempFile
    Kill TempFile
    
    Sheets(Array("ORDER AFHANDELING", "PAKBON")).Copy
    With dest.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial Paste:=xlPasteValues
        .Cells(1).PasteSpecial Paste:=xlPasteFormats
        .Cells(1).Select
        Application.CutCopyMode = False
        .SaveAs sPadnaam & sBestandsnaam, FileFormat:=xlOpenXMLWorkbookMacroEnabled
        .Close SaveChanges:=False
    End With

End Sub
Niet getest, want we hebben geen bestand van je.
 
Op de site van Ron de Bruin staat wel de oplossing. :d

For example, in Excel 2007-2013, this will fail if the ActiveWorkbook is not an xlsm file
ActiveWorkbook.SaveAs "C:\ron.xlsm"

This code will always work
ActiveWorkbook.SaveAs "C:\ron.xlsm", fileformat:=52
' 52 = xlOpenXMLWorkbookMacroEnabled = xlsm (with macro's in 2007-2013)


These are the main file formats in Excel 2007-2013, Note: In Excel for the Mac the values are +1

51 = xlOpenXMLWorkbook (without macro's in 2007-2013, xlsx)
52 = xlOpenXMLWorkbookMacroEnabled (with or without macro's in 2007-2013, xlsm)
50 = xlExcel12 (Excel Binary Workbook in 2007-2013 with or without macro's, xlsb)
56 = xlExcel8 (97-2003 format in Excel 2007-2013, xls)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan