Bonjour, je souhaite empecher l'impression d'un document depuis excel avec le code suivant :
Pour que cette protection soit efficace, il faut que les macros soient activées donc je cache la feuille à proteger en mettant la propriété visible à xlSheetVeryHidden puis lors de l'ouverture je met à xlSheetVisible.
Problème : j'ai quelqu'un qui arrive à voir la feuille masquée avec xlSheetVeryHidden!! Mais le problème n'apparait que sur un poste précis!
Existe-t-il un paramètre au niveau d'Excel ou quelque chose qui empeche la propriété xlSheetVeryHidden de fonctionner ?
Merci de votre aide,
romain
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'cache la feuille à nouveau puis enregistre sans rien demander à l'utilisateur
'sinon l'utilisateur enregistre le fichier avec la feuille visible
'et il peut utiliser la feuille avec les macros désactivées ==> plus de protection
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets(2)
wks.Visible = xlSheetVeryHidden
Set wks = Nothing
ThisWorkbook.Save
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
'intercepte la demande d'impression, la bloque et affiche un message
Cancel = True
MsgBox "Document à ne pas imprimer et à ne pas diffuser"
End Sub
Private Sub Workbook_Open()
'a l'ouverture rend la feuille visible puis met le focus dessus
'comme ça si classeur ouvert sans macros activées ==> feuille invisible
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets(2)
wks.Visible = xlSheetVisible
wks.Activate
Set wks = Nothing
End Sub
Pour que cette protection soit efficace, il faut que les macros soient activées donc je cache la feuille à proteger en mettant la propriété visible à xlSheetVeryHidden puis lors de l'ouverture je met à xlSheetVisible.
Problème : j'ai quelqu'un qui arrive à voir la feuille masquée avec xlSheetVeryHidden!! Mais le problème n'apparait que sur un poste précis!
Existe-t-il un paramètre au niveau d'Excel ou quelque chose qui empeche la propriété xlSheetVeryHidden de fonctionner ?
Merci de votre aide,
romain