Comment verrouiller des cellules, mais permettent de filtrage et de tri

J'utilise le code suivant pour verrouiller le contenu de certaines cellules

Sub LockCell(ws As Worksheet, strCellRng As String)
  With ws
   .Unprotect
   .Cells.Locked = False
   .Range(strCellRng).Locked = True
   .Protect Contents:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, DrawingObjects:=True
  End With
End Sub

Il verrouille le contenu de ces colonnes spécifiques. Le problème est que les utilisateurs ne peuvent pas trier, ni filtre, ni appliquer des bordures aux cellules, puisque celles-Excel éléments de menu sont désactivées.

Je pensais que le AllowSorting:=True, AllowFiltering:=True et DrawingObjects:=True permettrait que de la même manière le AllowFormattingColumns:=True et AllowFormattingRows:=True permis de redimensionnement.

  • Je vous suggère de relire l'aide d'Excel om Worksheet Proptect, particlarly concernant le Permettre paramètres wrt protégé des feuilles de calcul et des cellules verrouillées. AllowSorting: "Chaque cellule de la plage de tri doit être déverrouillé ou non protégés" AllowFiltering: "les Utilisateurs peuvent changer les critères de filtre, mais ne pouvez pas activer ou désactiver un filtre automatique"
  • Merci, c'est triste, parce que j'ai besoin d'être en mesure de bloquer certains contenus mais de permettre à l'utilisateur de trier et de filtrer. Des idées?
  • 1.) assurez-vous que votre plage ne se chevauchent pas avec les autres gammes. 2.) déverrouiller toutes les cellules dans la feuille avant d'appliquer un verrou à votre portée. 3.) "Les cellules pour être filtrée doit être déverrouillé, lorsque la feuille est protégée." ...donc il suffit de ne pas inclure ces "cellules de filtre" dans le cadre de votre verrouillé gamme. msdn.microsoft.com/en-us/library/office/ff839866.aspx