Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

[VBA] Abfrage über Anmeldenamen ohne Funktion

[VBA] Abfrage über Anmeldenamen ohne Funktion
09.04.2019 11:12:09
grmmphn
Hallo zusammen,
mein Ziel mit diesem Makro ist, dass die Zugangsberechtigung zu den letzten Arbeitsblättern mit Hilfe des Windows-Anmeldenames reguliert wird. Dazu habe ich eine externe Arbeitsmappe erstellt, die in Spalte A eine Auflistung der berechtigten Benutzer enthält und mit dem Windows-Anmeldenamen verglichen wird.
So soll sichergestellt werden, dass man jederzeit Benutzer hinzufügen und entfernen kann, ohne die "Haupt-Arbeitsmappe" zu verändern.
Nun habe ich allerdings das Problem, dass ich zwar Daten aus meiner externen Arbeitsmappe auslesen kann, das habe ich mit einer simplen Zellenkopie überprüft, jedoch scheint der Abgleich zwischen dem Anmeldenamen des Benutzers und der Benutzerliste, in der externen Arbeitsmappe, nicht zu funktionieren. Die Haupt-Arbeitsmappe sperrt nun generell die letzten Arbeitsblätter, beginnend mit dem zweiten Blatt.
Zur Vereinfachung habe ich mich nur auf meinen Benutzernamen in der Benutzerliste bezogen, der sich in Zelle 2A befindet.
 Private Sub Workbook_Open()
Dim ValidUser As String
Dim i As Long
Dim wbAdmins As Workbook
Dim ws As Worksheet
Application.ScreenUpdating = False
' Aufruf der externen Benutzerliste
Set wbAdmins = Workbooks.Open(Filename:="C:\*\Admins_Excel.xlsm")
Set ws = wbAdmins.Worksheets(1)
ValidUser = ws.Cells(2, "A")
If Not IsError(Application.Match(Environ("Username"), ValidUser, 0)) Then
For i = 1 To ThisWorkbook.Worksheets.Count
Worksheets(i).Visible = True
Next
Else
For i = 2 To ThisWorkbook.Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
End If
Application.DisplayAlerts = False
wbAdmins.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [VBA] Abfrage über Anmeldenamen ohne Funktion
09.04.2019 12:40:17
Werner
Hallo,
hier
ValidUser = ws.Cells(2, "A")
If Not IsError(Application.Match(Environ("Username"), ValidUser, 0)) Then

prüfst du ja nur eine einzelne Zelle auf einen gültigen Usernamen, nämlich Zelle A2.
Du müsstest doch aber wohl die komplette Spalte A auf einen gültigen Usernamen prüfen.
Private Sub Workbook_Open()
Dim i As Long, wbAdmins As Workbook
Dim ws As Worksheet
Application.ScreenUpdating = False
' Aufruf der externen Benutzerliste
Set wbAdmins = Workbooks.Open(Filename:="C:\*\Admins_Excel.xlsm")
Set ws = wbAdmins.Worksheets(1)
If Not IsError(Application.Match(Environ("Username"), ws.Columns(1), 0)) Then
For i = 1 To ThisWorkbook.Worksheets.Count
Worksheets(i).Visible = True
Next
Else
For i = 2 To ThisWorkbook.Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
End If
Application.DisplayAlerts = False
wbAdmins.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: [VBA] Abfrage über Anmeldenamen ohne Funktion
10.04.2019 15:27:09
grmmphn
Das hat mir schon geholfen, vielen Dank! Dann habe ich zuerst mit der Benennung der Spalte etwas falsch gemacht und dann mit der "Vereinfachung" alles noch schlimmer modifiziert ;)
Gerne u. Danke für die Rückmeldung. o.w.T.
10.04.2019 19:35:57
Werner

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige