Excel document beveiligen op verschillende niveaus

Status
Niet open voor verdere reacties.

Joete

Gebruiker
Lid geworden
19 sep 2008
Berichten
87
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:
  • 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?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan