dinsdag 23 februari 2016

Excel: beveiling op basis van Windows loginnaam met VBA

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()
    strInlognaam = Environ("UserName")
    Sheets("inlognamen").Activate
    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

Voor verder Excel tips klik hier.
Een reactie posten