Ich habe den Versuch gestartet, eine Excel-Datei Benutzer definiert darzustellen. Soll heißen unterschiedliche Benutzer sehen unterschiedliche Tabellenblätter.
Das funktioniert einwandfrei. Das Login habe ich auch über eine Listbox gelöst.
Ich habe aber keine Lust mehr von den Anwendern jedes mal gefragt zu werden warum wieso weshalb und man könnte doch den namen anderer eingeben blaaaaaaa. Und bin darauf gestoßen, dass ich ja die Windowskennung auslesen könnte.
So nun zu meinem Problem:
########################
Sub UserSettings()
Dim usrS As Long
Dim usrZ As Long
'Initiializieren
usrZ = VBA.Environ("Username")
With Sheets("Passwörter")
For usrZ = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(usrZ, 7) "" Then
For usrS = 9 To .Cells(1, Columns.Count).End xlUp).Column
If .Cells(usrZ, usrS) "" Then
Sheets(.Cells(1, usrS).Value).Visible = True
End If
Next
Else
MsgBox "your User is no longer activated for this sheet !"
End If
Next
End With
'Unload Me
'Sheets("Cockpit").Select
End Sub
###################Also der Code soll folgendes machen:
on Startup (kommt nocht ;)) run Usersettings, dann
mal schön alle Registerblätter bis auf eines via 'Initialisieren' ausblenden.
Im Anschluss Userkennung auslesen
diese dann in meiner "Passworttabelle suchen,
überprüfen ob aktiv
und dann mit der zweiten For-Schleife die jeweiligen berechtigten Registerblätter auslesen und einblenden.
Mein Problem ist jetzt in der Übergabe der Variable userZ. Ich kann mit dem ausgelesenen Wert nicht wirklich arbeiten, da ich den Pointer nicht setzen kann.
also ich hätte gern dass er den ausgelesenen Wert Sucht, und die Zeile in der der Wert dann steht übernimmt damit ich später mit dieser die Registerblattberechtigungen auslesen kann.
Falls jemand auch einen Fehler in der Anwendung meine IFs und FORs findet wäre ich über Stichworte sehr glücklich, dann kann ich das auch eleganter/funktional lösen versuchen.
Danke für Eure/Deine Mühen vorab.
lG Guntram