Freigabe über Environ("Username")
22.12.2022 09:09:23
Zulu
ich stehe aktuell bei einem Makro auf dem Schlauch und benötige eure Hilfe.
Ich habe eine Excel in welcher verschiedene Tabellenblätter ausgeblendet sind. Mittels UserForm kann der Nutzer den Namen eines Tabellenblatts auswählen welches er einblenden möchte. Ob er dazu berechtigt ist soll anhand seines Usernames geprüft werden.
Im Tabellenblatt Key habe ich eine Tabelle in welcher in Spalte A alle Tabellenblattnamen aufgeführt sind und in den Spalten D-F die Usernames der Nutzer welche Zugriff erhalten sollen.
Das Makro sieht wie folgt aus:
Private Sub tbBlatt_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Ergebnis As Range
On Error Resume Next
If KeyCode = 13 Then
Set Ergebnis = blattKey.Columns(1).Find(what:=tbBlatt, lookat:=xlWhole)
If blattKey.Cells(Ergebnis.Row, 4).Value Or blattKey.Cells(Ergebnis.Row, 5).Value Or blattKey.Cells(Ergebnis.Row, 6).Value = Environ("Username") Then
Set wks = Worksheets(tbBlatt.Text)
wks.Visible = True
wks.Activate
wks.Cells(1, 1).Select
Else
MsgBox "missing authorization"
End If
Unload Me
End If
End Sub
Leider kommt es nicht stabil zum gewünschten Ergebnis. Es gibt Tabellenblätter, bei welchen korrekter Weise die Meldung "missing authorization" erscheint. Es kommt aber auch immer wieder dazu, dass das Tabellenblatt eingeblendet wird obwohl der Username des Anforderers nicht in der jeweiligen Zeile in Spalte D-F aufgeführt ist.
Könnt ihr hier weiterhelfen woran das liegen kann?
Grüße und Danke schonmal für eventuelle Hinweise.