Zellen sperren, wenn Bedingung erfüllt ist

Bild

Betrifft: Zellen sperren, wenn Bedingung erfüllt ist
von: JörgR.
Geschrieben am: 22.02.2005 09:39:24
Hallo zusammen,
und vielen Dank schon einmal im voraus.
Ich habe eine Excel-Sheet für den mehrfachzugriff im Netzwerk freigegeben
und möchte erreichen, dass ein Überschreiten eines Sollwertes nicht möglich
ist, sondern die Zeile für den Zugriff gesperrt wird.
z.Bsp.
SOLL---Ist---A----B---C---D---E
-4------5----1----1---1---1---1
Im Bespiel hätte also der Zustand nicht eintreten dürfen, da der Eintrag 1 in diesen Zeilen für einen der User A - E hätte nicht mehr möglich sein dürfte. Ein kleines Sahnehäubchen wäre es dann, wenn User A, um Veränderungen überhaupt noch zu ermöglichen, als einziger noch Veränderungen in alle Richtungen vornehmen kann, ohne das Excel-Sheet aus dem Netzwerk-Zugriff zu nehmen. ( oder eine ähnliche Variante, zur Aufhebung des Zellschutz )
Welche Möglichekeiten gibt es?
Mit freundlichen Grüßen
JörgR.

Bild

Betrifft: AW: Zellen sperren, wenn Bedingung erfüllt ist
von: Björn B.
Geschrieben am: 22.02.2005 20:40:03
Hallo Jörg,
dein Problem mit dem Sperren könntest du über VBA lösen.
Man kann bei einem Tabellenblatt die Änderung von Zelleinträgen überwachen. Wenn du einen Grenzwert vorgibst, dann kann die Zelle bei Erreichen per VBA gesperrt werden.
Beispiel:
Die folgende Prozedur sperrt die Zelle C3, sobald ein Wert größer 4 eingetragen wird.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$3" Then
    If Target.Value > 4 Then
        Target.Parent.Unprotect
        Target.Locked = True
        Target.Parent.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End If
End If
End Sub

Gruß
Björn
Bild

Betrifft: AW: Zellen sperren, wenn Bedingung erfüllt ist
von: JörgR.
Geschrieben am: 22.02.2005 21:33:40
Hallo Björn,
vielen Dank für den Code, habe diesen als VBAProjekt auf das Arbeitsblatt gelegt
und fest gestellt, dass meine VBA-Kenntnisse wahrscheinlich glein "0" sind.
( ... soll heißen, es passiert nichts)
Welche Fehler kann ich machen?
Mit freundlichen Grüßen
JörgR.
Bild

Betrifft: AW: Zellen sperren, wenn Bedingung erfüllt ist
von: JörgR.
Geschrieben am: 22.02.2005 21:53:41
Hallo Björn,
es hat doch noch geklappt, Dein Code funktioniert, so wie von Dir beschrieben.
(... hab mal ein Bsp. hochgeladen unter https://www.herber.de/bbs/user/18546.xls)
Ich möchte erreichen, dass ab dem Zustand SOLL=IST, in der Zeile 3 die Zellen (C bis G) gesperrt sind und keine zusätzlichen Einträge mehr getätigt werden können.
Kannst Du Deinen Code dahingehend modifizieren?
Vielen Dank.
Mit freundlichen Grüßen
JörgR.
Bild

Betrifft: AW: Zellen sperren, wenn Bedingung erfüllt ist
von: Björn B.
Geschrieben am: 23.02.2005 20:07:39
Hallo Jörg,
dann versuch mal folgenden Code:

Private Sub Worksheet_Calculate()
    With ActiveSheet
        If .Range("B3").Value = .Range("A3").Value And .Range("C3:G3").Locked = False Then
            .Unprotect
            .Range("C3:G3").Locked = True
            .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        End If
    End With
End Sub

Gruß
Björn
Bild

Betrifft: AW: Zellen sperren, wenn Bedingung erfüllt ist
von: JörgR.
Geschrieben am: 24.02.2005 10:08:54
Hallo Björn,
mit dem neuen Code von Dir, ist wieder ein Stück meines Problems gelöst, vielen Dank dafür.
Jetzt erhalte ich jedesmal eine Kennwortabfrage, wenn ich die Abfrage ohne Kennworteingabe beende oder die Box schließe gibt es einen Laufzeitfehler in der
Zeile ".Range("C3:G3").Locked = True". Wenn ich das Kennwort eingebe läuft es super, kann ich das automatisieren, ohne Box, im Hintergrund?
Mit freundlichen Grüßen
JörgR.
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zellen sperren, wenn Bedingung erfüllt ist "