Ich möchte eine Zelle schützen, in der ich eine Dropdown-Liste habe, aber ich möchte trotzdem, dass die Dropdown-Liste funktioniert.
Wenn ich versuche, es zu schützen, kann der Benutzer die Dropdown-Liste nicht verwenden, um andere Elemente oder Makros auszuwählen.
Ich erhalte diese Fehlermeldung
„Die Zelle oder das Diagramm, das Sie ändern möchten, ist geschützt und daher schreibgeschützt. Um eine geschützte Zelle oder ein geschütztes Diagramm zu ändern, entfernen Sie zunächst den Schutz mit dem Befehl „Ungeschütztes Blatt“ (Registerkarte „Überprüfen“, Gruppe „Änderungen“). Möglicherweise werden Sie zur Eingabe eines Kennworts aufgefordert.“
Antwort1
Das Dropdown-Menü ist an die Zelle angehängt. Dort werden die Daten gespeichert. Die Validierung stellt sicher, dass die Daten gültig sind.
Stellen Sie sicher, dass die Zelle nicht gesperrt ist, sofern Sie dies noch nicht getan haben. Klicken Sie mit der rechten Maustaste auf die Zelle, klicken Sie auf Zellen formatieren und wechseln Sie dann zur Registerkarte Schutz. Das Kontrollkästchen Gesperrt sollte deaktiviert sein.
Antwort2
Ich glaube, diese Frage wurde möglicherweise falsch interpretiert. Wenn das so ist und ich sie richtig interpretiere, ist hier eine Lösung.
Excel erlaubt es einem Tabellenkalkulationsbenutzer tatsächlich, eine Zelle zu überschreiben, die eine Validierungsliste verwendet. Wenn die Liste die Werte „Apfel“, „Pfirsich“ und „Orange“ enthält, kann ein Benutzer standardmäßig „Brokkoli“ in die Zelle eingeben, wenn sie nicht geschützt ist, als ob keine Validierungsliste angehängt wäre. Wenn die Zelle und das Arbeitsblatt jedoch geschützt sind, ist es nicht mehr möglich, ein Element aus der Validierungsliste auszuwählen, und das kann ein Problem darstellen.
Wenn das das Problem ist, gibt es hier eine Lösung:
1. Format the cell using the validation list so it's
unprotected.
2. With the cursor positioned at that cell, open the
Validation menu origintally used to identify the validation
list.
3. On the Settings tab of the Data Validation window pane,
be sure that "ignore blank" is unchecked, and
continue to leave that window pane open.
4. On the "Error alert" tab of the Data Validation window
pane:
a) Be sure "Show error alert after invalid data is
entered" is checked.
b) Select "Stop" under the "Style" heading.
c) Give your error alert a name under "Title"; this
can be anything, but a short title is best.
d) Under "Error message", type a short message that you
want to appear if a user tries to manually type a value
in the cell - something like "Please use the drop-down
menu provided to select a value for this cell."
e) Click "OK".
Dadurch wird verhindert, dass Benutzer beliebige Eingaben in eine Zelle machen können, die eine Datenüberprüfung verwenden soll, selbst wenn das Arbeitsblatt ungeschützt ist. Sie sollten das Arbeitsblatt dennoch schützen, um unbeabsichtigte Aktualisierungen der Datenüberprüfungsliste selbst zu verhindern.
Antwort3
Auf meinem Computer (PC mit Excel 2010) scheint die Dropdown-Liste selbst tatsächlich an die Zelle direkt rechts daneben angehängt zu sein. Wenn ich also eine Dropdown-Liste in A7 haben möchte, muss ich sowohl A7 als auch B7 entsperren.
Dies könnte ein Fehler sein, der sich aber relativ einfach beheben lässt.
Antwort4
In geschützten Blättern:
Fügen Sie den folgenden Link in die Arbeitsmappe ein
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wsh As Variant
For Each wsh In Worksheets(Array("Sheet1"))
wsh.EnableOutlining = True
wsh.Protect UserInterfaceOnly:=True, Password:="", _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=True, _
AllowFormattingCells:=False, _
AllowFormattingColumns:=False, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=False, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=False, _
AllowSorting:=False, _
AllowFiltering:=False, _
AllowUsingPivotTables:=False
Next wsh
Dim Oldvalue As String
Dim Newvalue As String
On Error GoTo Exitsub
If Target.Address = "$C$2" Then 'As required
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = "" Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = "" Then
Target.Value = Newvalue
Else
Target.Value = Oldvalue & ", " & Newvalue
End If
End If
End If
Exitsub:
Application.EnableEvents = True
End Sub