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

kopie bestand als niet bewerkbaar document opslaan

Status
Niet open voor verdere reacties.

Cartucci

Gebruiker
Lid geworden
18 aug 2018
Berichten
65
Om een bestand voor 2 afdelingen inzichtelijk te maken, heb ik het volgende VBA script gebruikt:

Code:
Sub ShutDown()
    Application.DisplayAlerts = False
    'Slaat automatisch op en kopieert het bestand naar een tweede locatie en sluit Excel af.
    
    vbs = Environ("temp") & "\BestandGesloten.vbs"
    Open vbs For Output As #1
    Print #1, "MsgBox " & Chr(34) & "De lijst is automatisch opgeslagen en afgesloten." & Chr(34)
    Close #1
    Shell ("wscript " & vbs)
    
    ThisWorkbook.Save
    ActiveWorkbook.SaveCopyAs "W:\Orders\Kopie lijst.xlsm"
    
    ThisWorkbook.Close
End Sub

Ik zou graag willen dat de kopie als niet bewerkbaar document wordt opgeslagen op de tweede locatie. Is dit via VBA in te voegen in het bovenstaande script?
 
niet werkbaar bestand, waarom dan niet gewoon opslaan als pdf ?
 
Wat doet dat vbs-script daar ?
 
Daarmee blijft de MessageBox op het scherm staan als Excel afgesloten is.
 
Zoiets misschien

Code:
Sub jv()
 With ThisWorkbook
    .SaveAs .Path & "\" & Date
    .ChangeFileAccess 3
    .Close
  End With
End Sub
 
Daar kan TS vast wel antwoord op geven.
 
Ik zou gebruik maken van setattr
 
Met het voorstel van JV krijg ik het helaas niet voor elkaar. Ik houdt het daarom maar in de oude situatie. Op zich is dat werkbaar omdat het kopie-bestand met regelmaat ververst wordt en de "kopie-lezer" het bronbestand niet kan wijzigen.

Wel nog een andere vraag:

Is het mogelijk het script zo aan te passen dat het kopie bestand geen foutmelding toont bij afsluiten? Nu wordt bij afsluiten een 1004 foutmelding getoond omdat het script in werking treed en het kopie-bestand niet op de kopie-locatie opgeslagen kan worden.

De fout kan simpelweg genegeerd en weggeklikt worden maar het staat zo knullig.
 
Laatst bewerkt:
Zorg ervoor dat 'ie daar opgeslagen kan worden?
 
Is dat mogelijk? Naar mijn idee geeft het script eerst opdracht het bestand "gewoon" op te slaan en daarna als kopie nogmaals maar dat is op dezelfde locatie.
 
Ik ga er vanuit dat dat op 2 verschillende locaties is.
Waarom zou je een kopie in dezelfde locatie opslaan met dezelfde naam?

Zet anders dit als eerste regel in die Sub:
Code:
If ThisWorkbook.FullName = "W:\Orders\Kopie lijst.xlsm" Then Exit Sub
 
Laatst bewerkt:
Ik begrijp je vraag. Ik wil de kopie niet opslaan met dezelfde naam op dezelfde locatie maar het oorspronkelijke script, wat opdracht geeft tot het maken van de kopie vanuit het bronbestand, wordt meegenomen bij het maken van de kopie.

Bij het maken van de kopie vindt de naamswijziging plaats van het bestand. Bij afsluiten van het kopie-bestand gaat dit oorspronkelijke script wederom in werking maar nu vanuit de kopie en probeert hij het bestand eigenlijk 2 x op te slaan waarbij de 2e keer niet mogelijk is.

Eigenlijk zou dit deel van het script gewijzigd moeten worden bij het maken van de kopie maar mogelijk denk ik nu iets onmogelijks?

Ik ga morgen je voorgestelde oplossing testen. Bedankt edmoor
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan