Bonjour,
J'ai appris à mes dépendants que Worksheet.Protect remet toutes les autorisations aux valeurs par défaut
J'ai donc cherché une solution pour conserver les autorisations telles qu'elles étaient au moment du Worksheet.Unprotect, je n'ai rien trouvé, j'ai donc écrit une macro pour gérer ça.
Je suis dans l'attente des vos commentaires surtout si vous avez beaucoup plus simple, sinon en espérant que cela sera utile à quelqu'un.
A bientôt
GM
J'ai appris à mes dépendants que Worksheet.Protect remet toutes les autorisations aux valeurs par défaut
J'ai donc cherché une solution pour conserver les autorisations telles qu'elles étaient au moment du Worksheet.Unprotect, je n'ai rien trouvé, j'ai donc écrit une macro pour gérer ça.
VB:
'Protège la feuille passée en paramètre en conservant les autorisations antérieures
'Worksheet.Protect met toutes les autorisation aux valeurs par défaut.
'Set Woksheet.Protection = ObjetProtection génère une erreur
'Worksheet.Unprotect met à False DrawingObjects, Contents, et Scenarios, si on veut resistituer l'état antérieur à Unprotect, ils devront être conservés et passés en paramètre
'Worksheet.Unprotect ne modifie pas les autres autorisations Worksheet.Protection
Sub ProtegeFeuille(Feuille As Worksheet, Optional MotDePasse As String = "", Optional LesObjetsDessines As Boolean = True, Optional LeContenu As Boolean = True, Optional LesScenarios As Boolean = True)
Feuille.Protect Password:=MotDePasse, _
DrawingObjects:=LesObjetsDessines, _
Contents:=LeContenu, _
Scenarios:=LeScketch, _
AllowFormattingCells:=Feuille.Protection.AllowFormattingCells, _
AllowFormattingColumns:=Feuille.Protection.AllowFormattingColumns, _
AllowFormattingRows:=Feuille.Protection.AllowFormattingRows, _
AllowInsertingColumns:=Feuille.Protection.AllowInsertingColumns, _
AllowInsertingRows:=Feuille.Protection.AllowInsertingRows, _
AllowInsertingHyperlinks:=Feuille.Protection.AllowInsertingHyperlinks, _
AllowDeletingColumns:=Feuille.Protection.AllowDeletingColumns, _
AllowDeletingRows:=Feuille.Protection.AllowDeletingRows, _
AllowSorting:=Feuille.Protection.AllowSorting, _
AllowFiltering:=Feuille.Protection.AllowFiltering, _
AllowUsingPivotTables:=Feuille.Protection.AllowUsingPivotTables
End Sub
Je suis dans l'attente des vos commentaires surtout si vous avez beaucoup plus simple, sinon en espérant que cela sera utile à quelqu'un.
A bientôt
GM