Schützen einer Zelle, aber Zulassen der Funktion der Dropdown-Liste

Schützen einer Zelle, aber Zulassen der Funktion der Dropdown-Liste

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

verwandte Informationen