2.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo, ich habe eine Tabelle, in der bestimmte Zellen gesperrt werden sollen, wenn mehrere andere
Zellen bestimmte Werte enthalten. Ich bekomme es auch hin dass die Zelle gesperrt wird wenn die
Bedingungen erfüllt werden. Leider sperrt excel jedoch auch, wenn die Bedingungen nicht erfüllt sind.
Beispiel:

A. B. C. D

1

2

3



Die Zelle In Spalte B soll gesperrt werden, wenn in Spalte A eine Zeile Tiefer der Wert 1 oder 2 steht
nicht wenn dort der Wert 3 steht.
Excel soll dies fortlaufend prüfen, da immer wieder neue Zeilen eingefügt werden, so dass die
Bedingung der Zeile darunter sich ggf. ändert.
Tüfftele schon seit gestern und mache irgendetwas falsch. Brauche dringend Hilfe!!

Gruss

4 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein Beispiel .-)

code könnte durch das open-ereigniss aktiviert wwerden oder
auch ueber eine schaltflaeche oder tastaturkuerzel

Sub Schutz()
Dim Zeilen As Long
Dim ZellDaten As Variant
ActiveSheet.Unprotect
Cells.Locked = False
ZellDaten = Range("A3:A" & ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row)
For Zeilen = 1 To UBound(ZellDaten)
If ZellDaten(Zeilen, 1) = 1 Or ZellDaten(Zeilen, 1) = 2 Then
Cells(Zeilen + 1, 2).Locked = True
End If
Next Zeilen
ActiveSheet.Protect
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

oder per eingabe,in diesem Beispiel ist es die spalte b

gruss nighty

einzufuegen
alt+f11/projektexplorer/DeineTabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 2 And Target.Row > 1 Then
ActiveSheet.Unprotect
Cells.Locked = False
If Cells(Target.Row + 1, 1) = 1 Or Cells(Target.Row + 1, 1) = 2 Then
Cells(Target.Row, 2).Locked = True
End If
ActiveSheet.Protect
End If
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

Cells.Locked = False

wegnehmen und einmalig starten,die vorigen werden sonst wieder zurueckgesetzt

gruss nighty
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

um den Status festzulegen einmalig lauen lassen

dann obiges makro nutzen,jetztebehaelt es alle geschaleten zellen

Sub Einmalig()
ActiveSheet.Unprotect
Cells.Locked = False
ActiveSheet.Protect
End Sub
...