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

Macro, opslaan alleen mogelijk door...

Status
Niet open voor verdere reacties.

Frankell87

Gebruiker
Lid geworden
7 mei 2015
Berichten
141
Hallo,

is het mogelijk om een macro tijdens het afsluiten van het bestand te laten kijken die de wijzigingen heeft aangebracht en daarop te anticiperen?

Indien "Last Author" Pietje of Jantje is dan mag hij opslaan, anders alleen een Pop-up dat niet bevoegd is tot aanbrengen van wijzigingen oid.
 
Ik zeg werkmapbeveiliging alleen-lezen. Degenen die mogen bewerken geef je het wachtwoord.
Is ook vriendelijker naar de gebruiker toe dat hij van tevoren weet dat hij niet mag bewerken in plaats van achteraf.
 
Laatst bewerkt:
Inderdaad is het wel zo vriendelijk de gebruiker van tevoren op de hoogte te stellen met iets als dit:
Code:
Private Sub Workbook_Open()
    If ThisWorkbook.BuiltinDocumentProperties("Last Author") <> "FrankGierman" Then
        Application.DisplayAlerts = False
        ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
        Application.DisplayAlerts = True
        MsgBox "Document geopend in Alleen lezen modus.", vbInformation
    End If
End Sub
 
Laatst bewerkt:
Ik zou dat al regelen voordat de gebruiker het bestand 'opent'.
 
Bedankt heren(/dames),

@Timshel, klopt je hebt gelijk in het van te voren aangeven. heb alleen wel eens slechte ervaringen gehad als er dan filters worden gebruikt ed. aangezien het een best groot bestand is met veel verschillende filters en velden is de ReadOnly van optie van Edmoor misschien het beste.

Ga er vanavond mee aan het stoeien, laat wel weten of het is gelukt.
 
Hoi Edmoor,

werkt super! kan ik er ook 2 namen inzetten?

Inderdaad is het wel zo vriendelijk de gebruiker van tevoren op de hoogte te stellen met iets als dit:
Code:
Private Sub Workbook_Open()
    If ThisWorkbook.BuiltinDocumentProperties("Last Author") <> "FrankGierman" Then
        Application.DisplayAlerts = False
        ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
        Application.DisplayAlerts = True
        MsgBox "Document geopend in Alleen lezen modus.", vbInformation
    End If
End Sub
 
Jazeker:
Code:
Private Sub Workbook_Open()
    Select Case ThisWorkbook.BuiltinDocumentProperties("Last Author")
        Case "FrankGierman", _
             "Pietje", _
             "Jantje"
            Application.DisplayAlerts = False
            ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
            Application.DisplayAlerts = True
            MsgBox "Document geopend in Alleen lezen modus.", vbInformation
    End Select
End Sub
 
Top case closed!!

Thanks, ik ga deze proberen te verwerken in mijn mijn andere vraag, denk dat die dan ook is opgelost!
 
Hij maakt nu juist voor mij een readonly volgens mij.... kan dat kloppen?
staat er nu niet, in het geval de laatste author Frank, Pietje of Jantje is moet je een ReadOnly maken?

Jazeker:
Code:
Private Sub Workbook_Open()
    Select Case ThisWorkbook.BuiltinDocumentProperties("Last Author")
        Case "FrankGierman", _
             "Pietje", _
             "Jantje"
            Application.DisplayAlerts = False
            ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
            Application.DisplayAlerts = True
            MsgBox "Document geopend in Alleen lezen modus.", vbInformation
    End Select
End Sub
 
Hij maakt het uiteraard ReadOnly voor alle opgegeven namen.
Je kan er ook dit van maken:
Code:
Private Sub Workbook_Open()
    Select Case ThisWorkbook.BuiltinDocumentProperties("Last Author")
        Case "FrankGierman"
            Exit Sub
    End Select

    Application.DisplayAlerts = False
    ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
    Application.DisplayAlerts = True
    MsgBox "Document geopend in Alleen lezen modus.", vbInformation
End Sub

Dan maakt 'ie het ReadOnly voor alle anderen dan FrankGierman.
Uiteraard kan je daar ook weer meerdere namen bij opgeven.
 
Laatst bewerkt:
En nu nog even het werkboek openen met de Shift toets ingedrukt....
 
Als je Excel open hebt en dan kiest voor Bestand > Open en een bestand selecteert terwijl je de Shift toets indrukt wordt de Workbook_Open niet uitgevoerd.
 
Ah oke, ach dat weet verder niemand in ons bedrijf dus daar ben ik niet zo bang voor. Tevens kijkt hij bij het bij het afsluiten naar wie je bent en past daar de pop-up op aan.

mocht het toch voor een probleem zorgen dan kan ik hem misschien bij het opslaan (BeforeSafe) nog een keer laten kijken wie je bent toch?
 
Nadenken gaat aan programmeren vooraf.
 
Meneer/mevrouw snb,

Helaas hebben we niet allemaal alle kennis in pacht en kom je er dus soms later pas achter dat dingen niet juist werken.
We doen allemaal ons best hoor.

Gelukkig zijn er mensen zoals edmoor die ons leken graag wat wil bijleren....
 
EdMoor heeft je geholpen om een onjuist geformuleerde vraag met VBA te pakken.
Maar daarmee is niet je eigenlijke probleem, dat je niet wist te formuleren, opgelost.
Je bent beter geholpen met de suggestie eerst goed na te denken en vervolgens een probleem precies te formuleren (en niet een hoe-vraag te stellen over een methode die bij voorbaat niet werkt).
 
EdMoor heeft je geholpen om een onjuist geformuleerde vraag met VBA te pakken.
Maar daarmee is niet je eigenlijke probleem, dat je niet wist te formuleren, opgelost.
Je bent beter geholpen met de suggestie eerst goed na te denken en vervolgens een probleem precies te formuleren (en niet een hoe-vraag te stellen over een methode die bij voorbaat niet werkt).

Tja het kan natuurlijk zijn dat je later samen tot een betere oplossing komt dan de initiele vraag....
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan