2016-11-21 2 views
0

Wie kann ich ein Blatt schützen, damit ein Benutzer eine Tabelle sortieren kann?Tabelle mit geschütztem Blatt sortieren

ich habe:

  1. Locked die Kopfzeile der Tabelle
  2. entriegelte die Zellen in der Tabelle
  3. das Blatt Geschützt mit sort, Select unlocked cells und AutoFilter geprüft.

Wenn ich auf die Schaltfläche klicken Sie neben dem Kopf ich meine Tabelle filtern kann, aber wenn ich es sortieren möchten ... Ich bekomme diese Fehlermeldung:

Die Zelle oder das Diagramm, das Sie versuchen zu ändern ist geschützt und daher schreibgeschützt.

Um eine geschützte Zelle oder ein Diagramm zu ändern, entfernen Sie zuerst den Schutz mit dem Befehl Blatt entfernen (Register Überprüfung, Gruppe Änderungen). Sie werden möglicherweise nach einem Kennwort gefragt

Aber wenn ich den Header entsperren, kann der Benutzer es sortieren und bearbeiten. Leider möchte ich nicht, dass er den Header ändert, sondern sortiere einfach die Zellen darunter. Ist das möglich?

Vielen Dank im Voraus für Ihre Antworten!

* bearbeitet

Vielleicht ist es nur möglich, mit VBA (hinzugefügt Tag VBA)

+0

Apply Blattschutz. Wählen Sie alles außer "Autofilter verwenden" ab – Tom

Antwort

0

ich auch eine Antwort auf diese für eine Weile suchen war und leider glaube ich nicht, dass es ist ohne VBA möglich. Außerdem glaube ich nicht, dass ein Ereignis ausgelöst wird, indem man auf die Filter/Sortier-Buttons in den Spaltenüberschriften klickt, so dass man eine Schaltfläche hinzufügen müsste, die den folgenden Beispielcode ausführt (muss an deine Bedürfnisse angepasst werden) :

Sub sortColumn() 
'Unprotect sheet (Change "password" or remove it if you don't have any) 
ActiveSheet.Unprotect Password:="password" 

'Use Sort function (you can use the macro recorder to find the right code for other sorting/filter-options) 
'Adapt Sheetname and Range of table to your needs 
Sheets(1).AutoFilter.Sort.SortFields.Clear 
Sheets(1).AutoFilter.Sort.SortFields.Add Key:= _ 
    Range("A1:A10"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ 
    :=xlSortNormal 
With ActiveWorkbook.Worksheets(1).AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 

ActiveSheet.Protect Password:="password" 

End Sub 

eine könnte fortschrittliche Lösung, die eine Benutzer-Form zu schaffen, in dem Benutzer die Spalte auswählen (s) er will sortieren und die Sortierreihenfolge (absteigend/aufsteigend).

Verwandte Themen