Onderwerp


Werkboek autorisatie



Informatie


Een werkboek zo indelen dat gebruikers slechts die werkbladen mogen gebruiken waar zij voor geautoriseerd zijn. Als je eigenaar van een ingewikkeld spreadsheet bent kun je dit via een paar VBA routines regelen. Om dit mogelijk te maken voer je de volgende stappen uit:

- Zorg dat het spreadsheet in ieder geval 4 werkbladen bevat waarvan de laatste 3 verborgen zijn
- Open de VBA editor via
ALT+F11
- Selecteer het werkboek en klap de map Excel objecten uit
- Dubbelklik op het object
ThisWorkbook
- Kopieer onderstaande code en plaats deze in ThisWorkbook

Option Explicit
Const strCompany As String = "Spreadsheet Solutions"

  Private Sub Workbook_Open()
Dim strWW As String 'Wachtwoord

Application.DisplayAlerts = False
strWW = InputBox("Voer uw wachtwoord in:", strCompany, , 3000, 3000)

Select Case strWW
Case Is = "ABCD"
Worksheets("Sheet2").Visible = True
Case Is = "1234"
Worksheets("Sheet3").Visible = True
Case Is = "qwerty"
Worksheets("Sheet4").Visible = True
Case Else
MsgBox "Het wachtwoord is onjuist. Het programma wordt afgesloten.", vbInformation + vbOKOnly, strCompany
ThisWorkbook.Close (False)
End Select

Application.DisplayAlerts = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("Sheet2").Visible = xlVeryHidden
Worksheets("Sheet3").Visible = xlVeryHidden
Worksheets("Sheet4").Visible = xlVeryHidden
End Sub




Hoe het werkt.
- Als het werkboek wordt geopend, wordt er via een Inputbox om een wachtwoord gevraagd. De gebruiker moet nu een wachtwoord invoeren. In bovenstaand voorbeeld worden 3 gebruikers met specifieke wachtwoorden herkend, maar dat aantal en die wachtwoorden kun je natuurlijk wijzigen via de
Case Is = constructie.
- Als een geldig wachtwoord wordt ingevoerd wordt het betreffende werkblad dat die gebruiker mag bewerken zichtbaar gemaakt. Indien een ongeldig wachtwoord wordt ingevoerd, wordt de toepassing afgesloten.
- Voor dat de toepassing echter wordt afgesloten worden via de 2e procedure alle werkbladen, behalve de 1e, zo verborgen dat je ze zelfs niet meer via het lint (Excel 2007), of het menu (Excel 2003) zichtbaar kan maken.

!! Het zal duidelijk zijn dat deze toepassing alleen werkt indien je het activeren van Macro's toestaat.