ist es möglich einzelne Zellen in Abhängigkeit von deren Inhalt zu schützen?
In meiner Tabelle sind im Bereich I6:AB25 die Zellen mit Formeln befüllt.
Das Tabellenblatt ist geschützt aber der Berich I6:AB25 ist nicht gesperrt.
Z.B. in I6 steht =Wenn (H6=1;"X";""). Wenn also ein "X" in I6 erscheint,
dann soll diese Zelle geschützt sein.
Wenn kein "X" vorhanden ist, soll dem Benutzer ein Eintrag ermöglicht
werden.
Ich hoffe auf eure Hilfe.
Gruß Otto
"Otto Reinhardt" <Rein...@web.de> schrieb:
> ist es möglich einzelne Zellen in Abhängigkeit von deren Inhalt zu
> schützen?
> In meiner Tabelle sind im Bereich I6:AB25 die Zellen mit Formeln befüllt.
> Das Tabellenblatt ist geschützt aber der Berich I6:AB25 ist nicht
> gesperrt.
> Z.B. in I6 steht =Wenn (H6=1;"X";""). Wenn also ein "X" in I6 erscheint,
> dann soll diese Zelle geschützt sein.
> Wenn kein "X" vorhanden ist, soll dem Benutzer ein Eintrag ermöglicht
> werden.
verwende die Gültigkeitsprüfung im Menü Daten/Gültigkeit.
Markiere den Bereich I6:AB25 und rufe den Gültigkeitsdialog auf.
Stelle im Register "Einstellungen" das Auswahlfeld 'Zulassen' auf
"Benutzerdefiniert" und schreibe folgende Formel in das Textfeld:
=I6="X"
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de
"Melanie Breden" <m.br...@usenet.arcornews.de> schrieb im Newsbeitrag
news:45b5bb24$0$5729$9b4e...@newsspool3.arcor-online.net...
vielen Dank für die schnelle Antwort, aber es funktioniert nicht so ganz.
Ich kann jetzt in dem betreffenden Bereich, I6:AB25, nur noch "X"-e
eintragen. Alles andere ist gesperrt.
So war das nicht gewollt.
In dem Bereich I6:AB25 sollen, wenn kein "X" vorhanden ist die Werte von 1
bis 5 eingetragen werden.
Ist ein "X" vorhanden, dann soll die Zelle gegen Überschreiben geschützt
sein.
Fällt Dir vielleicht noch etwas dazu ein?
Gruß Otto
"Otto Reinhardt" <Rein...@web.de> schrieb:
> vielen Dank für die schnelle Antwort, aber es funktioniert nicht so ganz.
> Ich kann jetzt in dem betreffenden Bereich, I6:AB25, nur noch "X"-e
> eintragen. Alles andere ist gesperrt.
> So war das nicht gewollt.
> In dem Bereich I6:AB25 sollen, wenn kein "X" vorhanden ist die Werte von 1
> bis 5 eingetragen werden.
> Ist ein "X" vorhanden, dann soll die Zelle gegen Überschreiben geschützt
> sein.
> Fällt Dir vielleicht noch etwas dazu ein?
dir ist schon klar, dass die Formeln in dem Bereich durch das Überschreiben
von festen Werten gelöscht werden?
Ich habe die Gültigkeit in I6 jetzt mal in Abhängigkeit der Zelle H6
definiert.
Versuche mal folgende Formel in der Gültigkeitsprüfung in I6:
=(H6=1)*(I6>0)*(I6<6)
"Melanie Breden" <m.br...@usenet.arcornews.de> schrieb im Newsbeitrag
news:45b5d9a8$0$30314$9b4e...@newsspool1.arcor-online.net...
Jetzt hat es bei mir etwas gedauert bis ich mich wieder gemelden konnte.
Es ist mir schon klar, dass die Formeln überschrieben werden. Es geht mir
nur darum, dass durch die Formel in dem Bewertungsbereich I6:AB25 an
bestimmten Stellen ein "X" eingetragen wird. Überall wo ein "X" steht,
braucht keine Bewertung eingetragen zu werden. Damit die "X"e nicht
versehentlich überschrieben werden können, versuche ich diese Zellen zu
schützen.
Deine Formel funktioniert bei mir leider immer noch nicht. Jetzt kann ich
in dem gesamten Bewertungsbereich, also über da, wo diese Gültigkeitsprüfung
eingestellt ist, keine Eingabe mehr machen. Es kommt immer die Meldung "Der
eingegebene Wert ist ungültig. Ein anderer Benutzer hat die Werte begrenzt,
die in diese Zelle eingegeben werden können".
Gibt es vieleicht ein Lösung in VBA?
Viele Grüße
Otto
>> "Otto Reinhardt" <Rein...@web.de> schrieb:
> Deine Formel funktioniert bei mir leider immer noch nicht. Jetzt kann ich
> in dem gesamten Bewertungsbereich, also über da, wo diese Gültigkeitsprüfung
> eingestellt ist, keine Eingabe mehr machen. Es kommt immer die Meldung "Der
> eingegebene Wert ist ungültig. Ein anderer Benutzer hat die Werte begrenzt,
> die in diese Zelle eingegeben werden können".
> Gibt es vieleicht ein Lösung in VBA?
sicherlich kann man auch eine VBA Lösung entwickeln.
Was genau soll denn passieren?
Ich habe es so verstanden:
In Spalte H gibt der Benutzer Werte ein.
Wenn in einer Zelle in Spalte H eine 1 eingegeben wird, sollen in die Zellen
dieser Zeile von I:AB ein X geschrieben und die Zellen gesperrt werden.
Wenn in Spalte H ein anderen Wert als 1 oder kein Wert steht,
dürfen in I:AB nur die Werte 1 - 5 eingegeben werden.
"Melanie Breden" <m.br...@usenet.arcornews.de> schrieb im Newsbeitrag
news:45b67eac$0$5717$9b4e...@newsspool3.arcor-online.net...
ja genau. So hast Du es fast richtig verstanden. Ich hab mich vielleicht
nicht so ganz eindeutig ausgedrückt.
Aber, es sollen nur d i e Zellen gesperrt werden, die ein X enthalten. Die
anderen Zellen in dieser Zeile I:AB sollen für die Eingabe von Bewertungen
nicht gesperrt werden.
Sinn des Ganzen ist, dass der Benutzer gleich sieht, überall wo ein X
drinsteht "ah, da brauch ich nichts reischreiben".
Gruß Otto
"Otto Reinhardt" <Rein...@web.de> schrieb:
> Aber, es sollen nur d i e Zellen gesperrt werden, die ein X enthalten. Die
> anderen Zellen in dieser Zeile I:AB sollen für die Eingabe von Bewertungen
> nicht gesperrt werden.
> Sinn des Ganzen ist, dass der Benutzer gleich sieht, überall wo ein X
> drinsteht "ah, da brauch ich nichts reischreiben".
sind denn die Spalten die ein X erhalten nicht in allen Zeilen identisch?
Dann könnte man per VBA das X setzen und so auf die Formeln verzichten.
Speicher folgende Prozedur im Codemodul der Tabelle.
Es werden alle Änderungen in H6:H25 überwacht.
Im Bereich I:AB werden Formeln vorausgesetzt, die ein X liefern können.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngRow As Range
Dim rngCell As Range
' Blattschutz setzen mit VBA Freigabe
Me.Protect "XXX", UserInterFaceOnly:=True
' Eingabebereich
If Intersect(Target, Range("H6:H25")) Is Nothing Then Exit Sub
With Target
' Zeile/n der geänderten Zelle/n
Set rngRow = .Offset(0, 1).Resize(.Count, Columns("AB").Column - .Column)
' Wenn Wert nicht 1 entsperre alle Zellen
If .Cells(1).Value <> 1 Then
rngRow.Locked = False
Exit Sub
End If
End With
' Alle Zelle nach Zellenwert sperren
For Each rngCell In rngRow
With rngCell
.Locked = .Value = "X"
End With
Next rngCell
End Sub
Ich wünsche Dir und natürlich auch den anderen Helfern hier im Forum noch
ein schönes Wochenende.
Gruß - Otto
"Melanie Breden" <m.br...@usenet.arcornews.de> schrieb im Newsbeitrag
news:45b71472$0$27625$9b4e...@newsspool2.arcor-online.net...
"Otto Reinhardt" <Rein...@web.de> schrieb :
> es tut mir nur leid, dass ich mich jetzt erst wieder melden kann.
> Vielen, vielen Dank für Deine Geduld mit mir.
> Der Code ist genau das was ich gebraucht habe. Es funktioniert ganz
> hervorragend.
Vielen Dank für deine Rückmeldung.
> Ich wünsche Dir und natürlich auch den anderen Helfern hier im Forum noch
> ein schönes Wochenende.
Das wünsche ich dir auch, bei mir dauerts allerdings noch ein bischen bis zum WE.