Momenteel ben ik bezig een Excel applicatie te beveiligen op basis van de Windows inlognamen. Aan de hand van de inlognaam worden rechten toegekend. Aan de hand van deze rechten zijn bepaald menuknoppen wel of niet zichtbaar.
Hoe gaat zoiets in zijn werk? Bij het openen van de werkmap wordt gekeken naar de Windows loginnaam met Environ("UserName"). Op een blad met de naam Inlognamen wordt gekeken welke rechten erbij horen. Op basis van deze rechten worden bepaald ActiveX opdrachtknoppen op een blad met de naam Menu wel of niet zichtbaar gemaakt.
De VBA code ziet er globaal zo uit:
Private Sub Workbook_Open()
For Each rngCel In ActiveSheet.UsedRange.Columns(1).Cells
If rngCel.Value = strInlognaam Then
strRechten = rngCel.Offset(0, 1).Value
Exit For
End If
Next
Sheets("menu").Activate
Select Case strRechten
Case "Knop1"
ActiveSheet.cmdKnop1.Visible = True
Case "Knop2"
ActiveSheet.cmdKnop2.Visible = True
Case Else
MsgBox "Je hebt geen rechten voor deze toepassing"
ActiveWorkbook.Saved = True
Application.Quit
End Select
Hoe gaat zoiets in zijn werk? Bij het openen van de werkmap wordt gekeken naar de Windows loginnaam met Environ("UserName"). Op een blad met de naam Inlognamen wordt gekeken welke rechten erbij horen. Op basis van deze rechten worden bepaald ActiveX opdrachtknoppen op een blad met de naam Menu wel of niet zichtbaar gemaakt.
De VBA code ziet er globaal zo uit:
Private Sub Workbook_Open()
strInlognaam = Environ("UserName")
Sheets("inlognamen").ActivateFor Each rngCel In ActiveSheet.UsedRange.Columns(1).Cells
If rngCel.Value = strInlognaam Then
strRechten = rngCel.Offset(0, 1).Value
Exit For
End If
Next
Sheets("menu").Activate
Select Case strRechten
Case "Knop1"
ActiveSheet.cmdKnop1.Visible = True
Case "Knop2"
ActiveSheet.cmdKnop2.Visible = True
Case Else
MsgBox "Je hebt geen rechten voor deze toepassing"
ActiveWorkbook.Saved = True
Application.Quit
End Select
Reacties