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

Afsluiten van werkboek in read-only modus

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
535
Goede morgen ontwikkelaars,

Ik heb een Excell werkboek die door het personeel enkel kan geconsulteerd worden. Zij moeten dan op de aangemaakte knop read-only klikken in het openingsformulier. De werkboek gaat dan op in read-only modus.
Enkel de verantwoordelijken kunnen wijzigingen aanbrengen door middel van een paswoord in dat zelfde formulier. Het werkboek gaat dan open in en normale modus.

Dit werkt perfect.

Het werkboek kan afgesloten worden door middel van een knop met volgende code :

Code:
Application.ScreenUpdating = False
    
    If ThisWorkbook.ReadOnly = False Then
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
    End If

Application.ScreenUpdating = True

Application.Quit

Echter wanneer een gebruiker het werkboek consulteert (in read-only modus) en het nadien afsluit komt er een error venster zoals in de foto met de vermelding dat het document in read-only is geopend en dus niet kan gesaved worden.

Volgens mij zou door de code het werkboek gesaved mogen worden als het in niet read-only modus geopend is.

Of zie ik dat verkeerd? :confused:

Thanks

Greetz

Pascal
 

Bijlagen

  • Error 1004.JPG
    Error 1004.JPG
    17,9 KB · Weergaven: 45
Volgende code lost je probleem op :

Code:
    If ThisWorkbook.ReadOnly = False Then
        Exit Sub
    Else
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
    End If

Groet,

Joske
 
Hint: ActiveWorkbook is niet per se hetzelfde als ThisWorkbook.......
 
Joske2000, jkpieterse,

Bedankt voor jullie antwoord.

Bij een Exit sub gaat de code wel niet meer verder maar dan sluit het werkboek wel niet wat echter de bedoeling is... Ze kunnen het uiteraard met het kruisje aflsluiten, maar de code staat achter een afsluitknop die ze eventueel kunnen gebruiken...

En... Is het dan beter om ActiveWorkbook.Save te vervangen door ThisWorkbook.Save?

Thanks

Greetz

Pascal
 
Dat ligt eraan welk bestand je wilt opslaan, als het het bestand is waarin de macro staat, gebruik je ThisWorkbook, is het mogelijk een ander bestand, maar wel het huidig zichtbare bestand, dan gebruik je ActiveWorkbook.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan