Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Makro nur für bestimme User freigeben

Makro nur für bestimme User freigeben
10.04.2018 08:05:05
Johannes
Hallo,
ich habe eine freigegebene Tabelle in der eine Handvoll Leute Arbeiten dürfen und ca. 100 Leute lesen können. Die Rechte sind allerdings nicht über die Tabelle geregelt sondern über den Zugriff auf den Netzwerkpfad. Also Alle Kollegen haben Lesezugriff auf den Ordner und 5 Kollegen haben zusätzlich auch Schreibrechte.
Das Makro macht folgendes:
Beim öffnen wird nach einem Zeitstempel gesucht, weicht dieser vom heutigen Datum ab, wird eine Fristenüberprüfung durchgeführt. Diese versendet dann automatisch E-Mails. Anschließend wird der Zeitstempel auf das aktuelle Datum gesetzt.
Öffnet nun am Morgen ein Kollege ohne Schreibrechte die Tabelle als erster startet die Schleife und die Emails werden versandt. Ohne Schreibrechte kann jedoch der Zeitstempel nicht gesetzt werden, somit werden die Mails erneut versandt, bis ein Kollege mit Schreibrechten den Zeitstempel setzen und speichern kann.
Frage: Ist es möglich das Makro nur von bestimmten Kollegen zu starten? Kann man auslesen welche Rechte auf einem Ordner sind, und die Makroausführung dann an diese Kollegen koppeln? Oder fällt jemandem sonst eine Lösung ein?
Vielen Dank für die Mühe,
Johannes

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur für bestimme User freigeben
10.04.2018 08:24:51
michl
quick and dirty wäre, wenn du eine liste von nutzern (bspw. in nem Array) oder auch direkt beim makro selber, als zugelassene definierst. (geht auch in nem versteckten blatt...)
If Not (LCase(Environ("Username")) = "heinz" Or LCase(Environ("Username")) = "hans_wurst" Or LCase(Environ("Username")) = "a987654") Then Exit Sub
was mir grad noch einfällt...
ggf. wäre das ausgeblendete blatt wirklich nicht schlecht.
alle 100, die drin stehen dürfen die Datei überhaupt öffnen (sonst geht sie zu) und die Zugriffsrechte könnte man dann beim start ermitteln und auf dem blatt merken...
wer dann schreibzugriff hat, geht's weiter mit dem makro...
Anzeige
Du könntest es mit Environ("Username")...
10.04.2018 08:28:41
Case
Hallo, :-)
... probieren: ;-)
Lies im VBA-Editor im Direktbereich mit ?Environ("Username") die Namen der 5 Personen aus, die berechtigt sind und trage sie in Kleinbuchstaben im Workbook_Open-Code unter "DieseArbeitsmappe" ein:
Option Explicit
Private Sub Workbook_Open()
Select Case LCase(Environ("Username"))
Case "chefchen_1", "chefchen_2", "chefchen_3"
Call Mein_Makro
Case Else
' Mach was Anderes oder Nichts...
End Select
End Sub
In einem Modul, dann Dein Code: ;-)
Option Explicit
Sub Mein_Makro()
' Dein Code hier
End Sub
Servus
Case

Anzeige
AW: Makro nur für bestimme User freigeben
10.04.2018 09:42:08
Joni
Hallo Johannes,
ich habe so etwas ähnliches in VB umgesetzt. Dort prüfe ich über LDAP ob ein User in einer bestimmten Gruppe ist (du könntest die Gruppe prüfen die die Schreibrechte hat). Die Pflege von Usernamen in einem Script ist immer mit Vorsicht zu genießen. In VBA habe ich so etwas noch nicht umgesetzt müsste aber sicher auf funktionieren. Evtl. hilft dir dieser Beitrag.
https://stackoverflow.com/questions/21110232/getting-ad-details-based-on-username?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
Gruß Joni
ReadOnly prüfen
10.04.2018 09:44:23
ChrisL
Hi Johannes
Ergänzender Ansatz:
If ThisWorkbook.ReadOnly Then
MsgBox "nur Lesezugriff"
Else
MsgBox "Schreibrechte vorhanden"
End If
cu
Chris
Anzeige
AW: Makro nur für bestimme User freigeben
10.04.2018 14:31:10
Johannes
Klasse danke für die Vorschläge ich probiere das in den nächsten Tagen aus! und melde mich dann wieder!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige