Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

eine Exceldatei speziell öffnen anhand Username

Forumthread: eine Exceldatei speziell öffnen anhand Username

eine Exceldatei speziell öffnen anhand Username
25.02.2016 16:40:12
Hecke
Einen schönen Guten Tag Forum,
habe mal eine Frage zur Öffnung einer Excel - Datei mit Environ("USERNAME").
Der Code unten macht schon das was er soll. Möchte diesen aber noch ein wenig ausbauen.
Die "Berechtigten" bekommen Vollzugriff auf die Datei, also Lese und Schreibrecht.
Weiterhin möchte ich noch habe das manche nur "Lesen" können ohne Schreibrecht und alle übrigen dürfen die Datei nicht öfnnen.
Kann man den Code unten noch weiter ausbauen?
Berechtigte Vollzugriff, alle anderen nur Schreibgeschützt:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Dim Berechtigt()
Berechtigt = Array("Michael", "Hans", "Werner", "Achim", "Claudia")
If Not IsError(Application.Match(Environ("Username"), Berechtigt, 0)) Then
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Bei Problemen oder Fragen bitte an Michael" _
& vbCrLf _
& vbCrLf _
& "Gutes Gelingen und viel Spaß", _
vbInformation
Else
If ActiveWorkbook.ReadOnly = False Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind nicht berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Die Datei wird schreibgeschützt geöffnet" _
& vbCrLf _
& vbCrLf _
& "Wir schaffen das !!", _
vbInformation
End If
End If
End Sub

Das passt soweit, nur möchte ich das auch beim schreigeschützten Öffnen nur bestimmte User haben und der Rest dann keinen Zugriff.
Danke Euch
Gruß

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Exceldatei speziell öffnen anhand Username
26.02.2016 11:23:43
Rudi
Hallo,
so:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
Dim BerechtigtA, BerechtigtB
BerechtigtA = Array("Michael", "Hans", "Werner", "Achim", "Claudia")
BerechtigtB = Array("Peter", "Klaus", "Julia")
If Not IsError(Application.Match(Environ("Username"), BerechtigtA, 0)) Then
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Bei Problemen oder Fragen bitte an Michael" _
& vbCrLf _
& vbCrLf _
& "Gutes Gelingen und viel Spaß", _
vbInformation
Exit Sub
End If
If Not IsError(Application.Match(Environ("Username"), BerechtigtB, 0)) Then
If Not ActiveWorkbook.ReadOnly Then
ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind nicht berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Die Datei wird schreibgeschützt geöffnet" _
& vbCrLf _
& vbCrLf _
& "Wir schaffen das !!", _
vbInformation
End If
Exit Sub
End If
MsgBox "keine Berechtigung"
Me.Close False
End Sub
Aber wer verhindert das Öffnen der Mappe mit gedrückter SHIFT-Taste?
Gruß
Rudi

Anzeige
AW: Exceldatei speziell öffnen anhand Username
26.02.2016 14:59:20
Hecke
Hallo Rudi,
dein Code funktioniert.
Danke dafür, aber was meinst du hiermit?
"Aber wer verhindert das Öffnen der Mappe mit gedrückter SHIFT-Taste?"
Gruß

AW: eine Exceldatei speziell öffnen anhand Username
26.02.2016 11:26:04
otto
Hi,
vielleicht so:
Sub Workbook_Open()
Application.DisplayAlerts = False
Dim Berechtigt(), nichtberechtigt()
Berechtigt = Array("Michael", "Hans", "Werner", "Achim", "Claudia")
nichtberechtigt = Array("Max", "Heinz", "Anna")
If Not IsError(Application.Match(Environ("Username"), Berechtigt, 0)) Then
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Bei Problemen oder Fragen bitte an Michael" _
& vbCrLf _
& vbCrLf _
& "Gutes Gelingen und viel Spaß", _
vbInformation
ElseIf Not IsError(Application.Match(Environ("Username"), nichtberechtigt, 0)) Then
If ActiveWorkbook.ReadOnly = False Then ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly
MsgBox "Guten Tag" & " " & Environ("USERNAME") & "," _
& vbCrLf _
& vbCrLf _
& "Sie sind nicht berechtigt an der Datei zu arbeiten." _
& vbCrLf _
& vbCrLf _
& "Die Datei wird schreibgeschützt geöffnet" _
& vbCrLf _
& vbCrLf _
& "Wir schaffen das !!", _
vbInformation
End If
Else
ActiveWorkbook.Close False
End If
End Sub
otto

Anzeige
AW: eine Exceldatei speziell öffnen anhand Username
26.02.2016 15:01:08
Hecke
Hallo Otto,
bei deinem Code bekomme ich die Fehlermeldung "Else ohne If"
Gruß

1x End If zu viel
26.02.2016 15:30:19
otto
Hi,
sorry, das End If vor Else muss weg.
otto
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige