• 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.

Verplicht met macro's opslaan

Status
Niet open voor verdere reacties.

Appievee

Gebruiker
Lid geworden
15 jul 2010
Berichten
83
Dag forummers,

Voor mijn werk een projectbewakingssheet gemaakt waarin ook macro's zitten om gegevens snel naar vorige maand over te zetten.
Nu krijg ik een sheet terug die leeg is qua macro's. Aangezien het bestand in .xlsx is teruggekomen ga ik er vanuit dat de gebruiker per ongeluk het bestand ooit zo heeft opgeslagen.

Kan ik dat op een of andere manier voorkomen aangezien niet iedereen het verschil zal kennen tussen .xlsx en .xlsm? Dus ik zoek een oplossing dat het bestand altijd als werkblad met macro's wordt opgeslagen.

Heeft iemand een oplossing? Dank je!:thumb:

Groeten, Albert
 
Laatst bewerkt:
Een .xls bestand is van voor Excel 2007, en kan uiteraard ook macro's bevatten.
Een .xlsx kan geen macro's bevatten, en ik denk dat je dat bedoeld.

Je weet dus in principe niet met welk versie de gebruiker werkt.

Een oplossing is denk ik om de "before_save" methode toe te passen, en in de code de versie opvragen.

Dit zou misschien al werken om het bestand op elk desktop te zetten na het opslaan, waarbij 52 staat voor opslaan als macrobestand.
Code:
if val(application.version) >= 12 then thisworkbook.saveas environ("USERPROFILE") & "\desktop\" & thisworkbook.name ,52

Mocht het niet zo zijn kun je altijd nog deze proberen.
Code:
Dim objWSHShell As Object
    Dim DesktopPath As String
    Set objWSHShell = CreateObject("WScript.Shell")
    DesktopPath = objWSHShell.SpecialFolders("Desktop")
 
 if val(application.version) >= 12 then thisworkbook.saveas DesktopPath & "\" & ThisWorkbook.Name, 52

Set objWSHShell = Nothing
 
Dag HSV,

Als ik je oplossingen goed begrijp laat je het op desktop wegschrijven? Zelf ben ik geen voorstander van het lokaal wegschrijven omdat het bestand in de regel voor projecten en dus meerdere mensen bereikbaar te houden. Of heb ik je oplossing verkeerd geïnterpreteerd?

Zelf liep ik met de gedachte rond om iets te zoeken wat lijkt op het principe van een macro voor het invoegen van plaatjes in dat bestand.
Daarin heb ik aan kunnen geven dat mensen alleen .jpg en .png in te kunnen voegen bij het bladeren naar een figuur.
Zou zoiets ook bestaan voor het opslaan van het bestand, waarbij nooit voor .xlsx gekozen kan worden?

Groeten, Albert
 
Ik neem aan dat het bestand al op de Pc aanwezig is van de gebruiker.
Misschien is dit een optie.
De gebruiker kan de bestandsnaam niet meer wijzigen.
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 If SaveAsUI Then
     Application.DisplayAlerts = False
       ThisWorkbook.SaveAs ThisWorkbook.FullName, 52
     Application.DisplayAlerts = True
    Cancel = True
 End If
End Sub

Er wordt niet meer gevraagd of het bestand al bestaat of dat het zonder macro's kan opgeslagen worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan