Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellen benutzerabhängige Erlaubnis zum Ändern

Betrifft: Zellen benutzerabhängige Erlaubnis zum Ändern von: Günter
Geschrieben am: 30.03.2008 15:29:54

Hallo Zusammen,

ich stehe mal wieder vor einem für mich größeren Problem.

Ich möchte bestimmte Zellen einer Mappe abhängig vom angemeldeten Benutzer ändern lassen.

Beispiel:
- Zelle A1 und komplette Zeile 12 dürfen nur von Müller geändert werden
- Zelle B3 und kompletten Zeile 4-5 dürfen nur von Meier geändert werden
- alles andere Zellen dürfen von jedem Benutzer geändert werden

Das Ermitteln des aktuellen Benutzers habe ich bereits gelöst.

Hat jemand eine Lösung?
Danke im Voraus.

Günter

  

Betrifft: AW: Zellen benutzerabhängige Erlaubnis zum Ändern von: Heinz
Geschrieben am: 30.03.2008 15:34:15

Hi,

Extras, Schutz, Benutzer dürfen Bereiche bearbeiten...

mfg Heinz


  

Betrifft: AW: Zellen benutzerabhängige Erlaubnis zum Ändern von: Günter
Geschrieben am: 30.03.2008 15:48:20

Hallo Heinz,

vielleicht habe ich micht ganz klar ausgedrückt.

Ich möchte diesen Zugriff mit einer INI-Datei regeln.
Abhängig von dem Inhalt der INI-Datei, die auf dem jeweiligen PC vorhanden ist, dürfen bestimmte Zellen geändert werden.

Nochmals zur Erläuterung das Beispiel:
- Zelle A1 und komplette Zeile 12 dürfen nur geändert werden, wenn der Inhallt einer INI-Datei "A" ist
- Zelle B3 und kompletten Zeile 4-5 dürfen nur geändert werden, wenn der Inhallt einer INI-Datei "B" ist
- alle andere Zellen dürfen von jedem Benutzer unabhängig von dem Inhalt der INI-Datei geändert werden

Der Inhalt der INI-Datei habe ich bereits ausgelesen und steht in der Variablen "INIStrg"


Hast Du oder sonstjemand eine Idee?

Danke
Günter


  

Betrifft: AW: Zellen benutzerabhängige Erlaubnis zum Ändern von: Tino
Geschrieben am: 30.03.2008 16:21:35

Hallo,
habe eine Idee, geht es so?
Habe es aber noch nicht auf Herz u. Nieren geprüft.

Als Code ins Tabellenblatt.
Die INIStrg ist ja bekannt.

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If (Not Intersect(Target, Range("A1,A12:IV12")) Is Nothing) And INIStrg = "B" Then
    Application.Undo
    MsgBox "Sie dürfen diesen Bereich nicht verändern!"
ElseIf (Not Intersect(Target, Range("B3,A4:IV5")) Is Nothing) And INIStrg = "A" Then
    Application.Undo
    MsgBox "Sie dürfen diesen Bereich nicht verändern!"
End If
Application.EnableEvents = True
End Sub



Gruß
Tino


  

Betrifft: Danke! Funktioniert tadellos von: Günter
Geschrieben am: 30.03.2008 16:54:58

Hallo Tino und Daniel,

danke für Eure Lösungen.
Ich habe mich für die Variante von Daniel entschieden, da ich dort keinen Blattschutz brauche!

Nochmals Danke und schönen Sonntag!

Gruß
Günter


  

Betrifft: AW: Danke! Funktioniert tadellos von: Tino
Geschrieben am: 30.03.2008 16:57:51

Hallo Günter,
Daniel benutzt doch aber den Blattschutz?

Gruß
Tino


  

Betrifft: AW: Danke! Funktioniert tadellos von: Günter
Geschrieben am: 30.03.2008 17:02:13

Hallo Tino,

ich habe Euch beide verwechselt.
Deine Variante mit "Worksheet_Change..." habe ich jetzt im Einsatz.

Gruß
Günter


  

Betrifft: AW: Zellen benutzerabhängige Erlaubnis zum Ändern von: Daniel
Geschrieben am: 30.03.2008 15:58:52

Hi

ne alternative Variante:
der Code muss (entsprechend angepasst) an die Stelle im Code eingefügt werden, an der du den Benutzer ermittelst:

Dim BEARBEITER As String

BEARBEITER = "" '--- hier dein Code zum Ermitteln des Bearbeiters

With Sheets("Tabelle1")
    .Unprotect Password:="DeinPassword"
    .Cells.Locked = False
    Select Case BEARBEITER
        Case "Müller"
            .Range("B3,4:5").Locked = True
        Case "Meier"
            .Range("A1,12:12").Locked = True
        Case Else
            .Range("A1,B3,4:5,12:12").Locked = True
    End Select
    .Protect Password:="DeinPassword"
End With



Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Zellen benutzerabhängige Erlaubnis zum Ändern"