Thema Datum  Von Nutzer Rating
Antwort
10.08.2010 11:32:55 Christoph
NotSolved
Blau Aw:Schreibscutz
18.08.2010 19:54:35 Severus
NotSolved

Ansicht des Beitrags:
Von:
Severus
Datum:
18.08.2010 19:54:35
Views:
717
Rating: Antwort:
  Ja
Thema:
Aw:Schreibscutz
Ich setze mal voraus, Deine Clients sind in einem ActiveDirectory eingebunden. In diesem Fall solltest Du in besagten File für die genannten Bereiche (Pool x) Namen vergeben, die denen des Benutzers im AD entsprechen. Ich nehme mal an, die User sind in der Form "Name Vorname" hinterlegt, also z.B. "Brown Charlie".
Dann müsstest Du für den Bereich, den Charlie Brown bearbeiten darf, eben diesen Namen vergeben. Analog für alle anderen.
Dann müsstest Du mit Ctrl+a alles markieren und über das Menü Format->Zellen->Schutz die Option "gesperrt" setzen und das Arbeitsblatt mit dem Password "Kennwort" schützen. (Excel 2003 oder früher)

Dann würde der Code

Option Explicit

Private Function Benutzer() As String
Dim SysInfAD As Object
Dim PosLeeR As Long
Dim LeerZähler As Long
On Error Resume Next
'Benutzer ermitteln
Set SysInfAD = CreateObject("ADSystemInfo")
Err.Clear
Benutzer = SysInfAD.UserName
If Err.Number <> 0 Then
Err.Clear
Benutzer = Application.UserName & "*"
Else
PosLeeR = InStr(1, Benutzer, ",", vbBinaryCompare)
Benutzer = Left(Benutzer, PosLeeR - 1)
PosLeeR = Len(Benutzer)
LeerZähler = 0
Do
If Mid(Benutzer, PosLeeR, 1) = " " Then LeerZähler = LeerZähler + 1
If LeerZähler = 2 Then Exit Do
PosLeeR = PosLeeR - 1
Loop
End If
Benutzer = Right(Benutzer, Len(Benutzer) - PosLeeR)
Benutzer = UCase(Benutzer)
Set SysInfAD = Nothing
End Function


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Anwender As String
Anwender = Benutzer()
With ThisWorkbook
With .Sheets("Pools")
.Unprotect "Kennwort": DoEvents
.Range(Anwender).Select
Selection.Locked = True
.Protect "Kennwort", True, True, True: DoEvents
.Range("A1").Select
End With
.Save
End With
End Sub

Private Sub Workbook_Open()
Dim Anwender As String
Anwender = Benutzer()
With ThisWorkbook
With .Sheets("Pools")
.Unprotect "Kennwort": DoEvents
.Range(Anwender).Select
Selection.Locked = False
.Protect "Kennwort", True, True, True: DoEvents
Selection.Cells(1, 1).Select
End With
End With
End Sub

Dein Problem lösen. Vorausgesetzt, Dein Blatt heißt "Pools".

Severus

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
10.08.2010 11:32:55 Christoph
NotSolved
Blau Aw:Schreibscutz
18.08.2010 19:54:35 Severus
NotSolved