ich möchte gerne beim Öffnen einer Tabelle unten stehende 3 Möglichkeiten überprüfen und jeweils unterschiedliche Blätter anzeigen.
Die User sind dabei auf Blatt1 hinterlegt.
Der aktuelle User wird per Environ in A1 geschrieben, seine Berechtigung in E1.
- Möglichkeit 1: Der User aus A1 ist nicht bekannt, d.h. nicht auf Blatt1 aufgeführt.
-> In diesem Fall soll nur Blatt 6 angezeigt werden und das Sub TimeOut_Msg aufgerufen werden.
- Möglichkeit 2: Der User aus A1 ist auf Blatt1 aufgeführt und ist gem. E1 "Administrator".
-> In diesem Fall sollen alle Blätter bis auf Blatt 6 angezeigt werden und das Sub Disclaimer_Msg aufgerufen werden.
- Möglichkeit 3: Der User aus A1 ist auf Blatt1 aufgeführt und ist gem. E1 "User".
-> In diesem Fall soll nur Blatt 7 angezeigt werden und das Sub Disclaimer_Msg aufgerufen werden.
Ich habe es mit folgendem Code probiert, erhalte dabei jedoch beim Öffnen der Datei folgende Fehlermeldung:
Laufzeitfehler 1004 - Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Hat jemand eine Idee dazu - bin Euch für jeden Tipp riesig dankbar !
Option Explicit
Private Sub Workbook_Open()
Worksheets(1).Range("A1") = Environ("Username")
If Application.CountIf(Sheets(1).Range("A3:A500"), Environ("Username")) 1 Then
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = xlVeryHidden
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = xlVeryHidden
Worksheets(7).Visible = xlVeryHidden
Worksheets(6).Visible = True
Worksheets(6).Range("A1").Select
Call TimeOut_Msg
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Else
If Worksheets(1).Range("E1") = "Administrator" Then
Worksheets(1).Visible = True
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Worksheets(5).Visible = True
Worksheets(6).Visible = False
Worksheets(7).Visible = True
Worksheets(7).Range("E2").Select
Call Disclaimer_Msg
With ActiveWindow
.DisplayHeadings = False
End With
Else
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = xlVeryHidden
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = xlVeryHidden
Worksheets(6).Visible = xlVeryHidden
Worksheets(7).Visible = True
Worksheets(7).Range("E2").Select
Call Disclaimer_Msg
With ActiveWindow
.DisplayHeadings = False
End With
End If
End If
End Sub
VG und vielen Dank im Voraus, Frank