Ik ben bezig met een Excel document voor op het werk. Het bedrijf waar ik werk heeft verschillende afdelingen en een stagiaire. Iedereen moet met het document kunnen werken, alleen de mensen die er dagelijks mee werken moeten overal bij kunnen, bij de anderen moet e.e.a. beveiligd en verborgen zijn.
De niveaus die ik uiteindelijk wil hebben:
De volgende code heb ik al in elkaar gefabriekt:
In deze code, lichtelijk aangepast, krijgen 3 gebruikers volledige toegang, 3 gebruikers beperkte toegang, de rest mag alleen bekijken. Ik loop nog even vast bij het beperken tot kolom G. Ik kan natuurlijk dmv en macro zeggen dat alle cellen geblokkeerd moeten worden bij de celeigenschappen, maar later moet iemand anders, die wel de bevoegdheid heeft, het bestand ook weer kunnen gebruiken in de overige cellen... Het gaat niet om een enorme beveiliging van het document, maar meer om dat mensen bewust de keus moeten maken om iets te wijzigen en niet per ongeluk iets aan kunnen vinken.
Nog een vraagje die ook binnen deze beveiliging moet gaan komen (heb er zelf nog niks over gegoogled oid, dus misschien is het wel heel simpel): Ik werk met gegroepeerde rijen en kolommen. Binnen de beperkingen zou ik ze op niveau 3 van 5 willen inklappen en blokkeren tegen openklappen. Kan dit? Zo ja, hoe?
De niveaus die ik uiteindelijk wil hebben:
- Volledige toegang -> reeds gelukt
- Toegang tot niet beveiligde cellen -> reeds gelukt
- Toegang tot niet beveiligde cellen, alleen in kolom G
- Geen toegang -> reeds gelukt
De volgende code heb ik al in elkaar gefabriekt:
Code:
Private Sub Workbook_Open()
UserName = Environ$("UserName")
If UserName = "jantje" Or UserName = "pietje" Or UserName = "klaasje" Then
ActiveWorkbook.Unprotect Password:="***"
Sheets("Voorblad").EnableSelection = xlNoRestrictions
Sheets("Voorblad").Unprotect Password:="***"
Sheets("Raming").EnableSelection = xlNoRestrictions
Sheets("Raming").Unprotect Password:="***"
Sheets("Raming").Shapes("RegelInvoegen").Visible = True
Sheets("Eindblad").EnableSelection = xlNoRestrictions
Sheets("Eindblad").Unprotect Password:="***"
Sheets("Eindblad").Shapes("Check Box 1").Visible = True
Sheets("Eindblad").Shapes("Check Box 2").Visible = True
Sheets("Eindblad").Shapes("Check Box 3").Visible = True
Sheets("Eindblad").Shapes("Check Box 4").Visible = True
Sheets("Eindblad").Shapes("Check Box 5").Visible = True
ElseIf UserName = "henkie" Or UserName = "pietertje" Or UserName = "stage" Then
ActiveWorkbook.Unprotect Password:="***"
Sheets("Voorblad").EnableSelection = xlUnlockedCells
Sheets("Voorblad").Protect Password:="***", UserInterfaceOnly:=True
Sheets("Raming").EnableSelection = xlUnlockedCells
Sheets("Raming").Protect Password:="***", UserInterfaceOnly:=True
Sheets("Raming").Shapes("RegelInvoegen").Visible = True
Sheets("Eindblad").EnableSelection = xlUnlockedCells
Sheets("Eindblad").Protect Password:="***", UserInterfaceOnly:=True
Sheets("Eindblad").Shapes("Check Box 1").Visible = True
Sheets("Eindblad").Shapes("Check Box 2").Visible = True
Sheets("Eindblad").Shapes("Check Box 3").Visible = True
Sheets("Eindblad").Shapes("Check Box 4").Visible = True
Sheets("Eindblad").Shapes("Check Box 5").Visible = True
MsgBox "U heeft geen bevoegdheid tot het volledige bestand. Het bestand is beveiligd alleen de te bewerken cellen zijn toegankelijk.", vbOKOnly + vbInformation, "Toegang beperkt"
Else
Sheets("Voorblad").EnableSelection = xlNoSelection
Sheets("Voorblad").Protect Password:="***", UserInterfaceOnly:=False
Sheets("Raming").EnableSelection = xlNoSelection
Sheets("Raming").Shapes("RegelInvoegen").Visible = False
Sheets("Raming").Protect Password:="***", UserInterfaceOnly:=False
Sheets("Eindblad").EnableSelection = xlNoSelection
Sheets("Eindblad").Shapes("Check Box 1").Visible = False
Sheets("Eindblad").Shapes("Check Box 2").Visible = False
Sheets("Eindblad").Shapes("Check Box 3").Visible = False
Sheets("Eindblad").Shapes("Check Box 4").Visible = False
Sheets("Eindblad").Shapes("Check Box 5").Visible = False
Sheets("Eindblad").Protect Password:="***", UserInterfaceOnly:=False
ActiveWorkbook.Protect Password:="***"
MsgBox "U heeft geen bevoegdheid het bestand te bewerken. Het bestand is beveiligd en alleen te bekijken.", vbOKOnly + vbInformation, "Toegang verboden"
End If
End Sub
In deze code, lichtelijk aangepast, krijgen 3 gebruikers volledige toegang, 3 gebruikers beperkte toegang, de rest mag alleen bekijken. Ik loop nog even vast bij het beperken tot kolom G. Ik kan natuurlijk dmv en macro zeggen dat alle cellen geblokkeerd moeten worden bij de celeigenschappen, maar later moet iemand anders, die wel de bevoegdheid heeft, het bestand ook weer kunnen gebruiken in de overige cellen... Het gaat niet om een enorme beveiliging van het document, maar meer om dat mensen bewust de keus moeten maken om iets te wijzigen en niet per ongeluk iets aan kunnen vinken.
Nog een vraagje die ook binnen deze beveiliging moet gaan komen (heb er zelf nog niks over gegoogled oid, dus misschien is het wel heel simpel): Ik werk met gegroepeerde rijen en kolommen. Binnen de beperkingen zou ik ze op niveau 3 van 5 willen inklappen en blokkeren tegen openklappen. Kan dit? Zo ja, hoe?