2008-10-28 6 views
2

J'ai une feuille de calcul Excel protégée, sans mot de passe. Ce que je voudrais faire est de piéger l'événement qu'un utilisateur déprotège la feuille de calcul, afin que je puisse générer un message (et nag 'em!). Je peux configurer la vérification d'événement pour l'application, pour quand de nouveaux classeurs sont ouverts, etc., mais pas pour Unprotect.
Est-ce que quelqu'un a une idée?Interrompre l'événement de suppression de la feuille de travail dans Excel

Répondre

1

Il est possible de modifier le menu en utilisant Outils-> Personnaliser. PROTEGER/Unprotect peut être configuré pour exécuter une macro, par exemple:

Sub UnprotectTrap() 
If ActiveSheet.ProtectContents = True Then 
    MsgBox "Tut,tut!" 
    ActiveSheet.Unprotect 
Else 
    ActiveSheet.Protect 

End If 
End Sub 
0

Il n'y a aucun moyen de piéger l'utilisateur déprotéger la feuille, mais vous pouvez les avertir si elles enregistrez le classeur sans reprotecting la feuille (s) .

Dans le module classeur, mettez ce code, ou quelque chose comme ça

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    If Sheets("MyProtectedSheet").ProtectContents = False Then 
    MsgBox "The sheet 'MyProtectedSheet' should not be left unprotected. I will protect it before saving", vbInformation 
    Sheets("MyProtectedSheet").Protect 
    End If 
End Sub