Ga naar inhoud

Na sjabloon oplsaan als .xlsm


Jef2019

Aanbevolen berichten

Beste forumleden

 

Ik heb een excel-sjabloon gemaakt met macro's. Bedoeling is dat gebruikers het sjabloon openen en daarna enkel kunnen opslaan als .xlsm. Qua bestandlocatie, wil ik dat de gebruiker nog zelf vrij een locatie kan kiezen. Ik wil ook al op voorhand een bestandsnaam opgeven, zodat de gebruikers hier geen werk meer aan hebben. Hoe kan ik dit in VBA doen?

 

Alvast bedankt!

Link naar reactie
Delen op andere sites

De code die ik gebruik, maar die dus niet doet wat hij moet doen, is de volgende:

 

Sub OpslaanAls()

Dim formName As String

formName = "Swingo configuration - " & Sheets("Offerte").Range("B2").Value

' OpslaanAls Macro

    ActiveWorkbook.Saveas Filename:= _
        formName _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Link naar reactie
Delen op andere sites

De code werkt voor een stuk goed, behalve voor het volgende:

- Elke keer wanneer je op opslaan klikt, opent het 'opslaan als'-venster en moet je opnieuw opslaan als een nieuw bestand; klik je op 'annuleren', dan slaat het alsnog opnieuw op, onder de naam 'onwaar'.

- Als ik het sjabloon wil aanpassen, kan ik niet meer opnieuw opslaan als een sjabloon, maar enkel als .xlsm

 

Ziehier de code die ik ervan gemaakt heb:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim xlsmnaam As String, titel As String, naam As String
    
On Error GoTo oops
    titel = "Offerte Swingo - "
    naam = titel & Sheets("Offerte").Range("B2").Value
    xlsmnaam = Application.GetSaveAsFilename(fileFilter:="Excel Files (*.xlsm), *.xlsm", InitialFileName:=naam & ".xlsm")
    
oops:
Exit Sub
    
ActiveWorkbook.Saveas xlsmnaam, FileFormat:=52


End Sub

 

Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.