Proteger/Deproteger a l'ouverture

janclode

XLDnaute Nouveau
Bonjour a tous,

Je voudrais savoir comment faire la macro suivante:
- a l'ouverture du fichier Excel: demander un mot de passe
- si le mot de passe est different de "water": proteger la feuille

J'ai fait ca:

<code>
Private Sub Workbook_Open()
Password = InputBox("Please type the password: ")

If Password <> "water" Then
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection

End If

End Sub

</code>

Mais que je tape "water" ou autre chose dans la fenetre ca protege la feuille.
Qqn peut m'aider s'il vous plait?

Merci

Bonne journee
 

JNP

XLDnaute Barbatruc
Re : Proteger/Deproteger a l'ouverture

Bonjour Janclode, Guy :),
La solution de Guy est bonne. Si tu souhaite adapter ton code de départ, il suffit de rajouter :
Code:
Else ActiveSheet.Unprotect
dans ton test.
Par contre, si tu ne rajoute pas un mot de passe dans ta protection/déprotection, l'utilisateur n'aura pas besoin de mot de passe pour simplement déprotéger la feuille avec le menu... Si tu veux un peu plus d'efficacité, fait une recherche sur le forum, le sujet de la protection des feuilles et classeurs a souvent été abordé...
Bon courage :cool:
 

Guiv

XLDnaute Occasionnel
Re : Proteger/Deproteger a l'ouverture

Re,
L'inconvénient de l'inputbox est que l'utilisateur peut la fermer sans saisir de mot de passe (avec la croix) et la feuille est alors protégée ou non selon son état lors de la dernière fermeture. Ou alors il faut la protéger systématiquement à la fermeture avec WorkBook_BeforeClose.
L'userform permet de contourner cela en empêchant la fermeture par la croix.
A part ça, la remarque de JNP est juste... De toute façon, la protection absolue n'existe pas, on peut seulement espérer protéger des fausses manips.
Cordialement,
Guiv
 

janclode

XLDnaute Nouveau
Re : Proteger/Deproteger a l'ouverture

Ok merci beaucoup a tous les deux. C'est vraiment sympa de repondre aussi vite et avec autant de precision.
Guiv, pouvez-me dire comment vous faites pour faire un Userform? Et aussi comment le modifier? En effet j'aimerais changer le texte francais pour le mette en anglais vu que je travaille en milieu professionel.
Merci beaucoup
 

Guiv

XLDnaute Occasionnel
Re : Proteger/Deproteger a l'ouverture

Re,
Tu trouveras plein de renseignements sur les userforms en faisant une petite recherche sur le forum...
Pour modifier les propriétés des objets (comme le texte par exemple), il faut doublecliquer sur l'objet userform dans la fenêtre VBE, l'userform s'affiche dans la fenêtre principale. Ensuite sélectionner le contrôle qu'on veut modifier, et modifier les propriétés dans la fenêtre "propriétés". Pour le texte, c'est la propriété "Caption".
Bonne journée,
Guiv
 

janclode

XLDnaute Nouveau
Re : Proteger/Deproteger a l'ouverture

Ok merci beaucoup j'ai reussi.

Mais il y a un petit probleme. Si un utilisateur lambda coche Ok sans mettre de mot de passe et modifie le niveau de securite des macros (par exemple a Eleve) alors la macro ne se declenche pas a l'ouverture et le fichier n'est plus protege.

Il suffit donc a n'importe qui de modifier ce niveau de securite pour modifier le fichier.
Est-il possible de parer ce probleme?

Merci
 

Guiv

XLDnaute Occasionnel
Re : Proteger/Deproteger a l'ouverture

Re,
Pourquoi alors ne pas faire au plus simple, c'est à dire protéger la feuille par Outils/Protection et mettre un mot de passe connu des seules personnes autorisées? Plus besoin de macros...
Cordialement,
Guiv
 

janclode

XLDnaute Nouveau
Re : Proteger/Deproteger a l'ouverture

J'ai trouve la solution.
Pour eviter d'avoir a choisir entre Autoriser ou Bloquer les macros a l'ouverture du fichier, il suffit de creer un certificat et de l'appliquer a la macro.
Ensuite il faut installer le certificat sur les ordinateurs qui utiliseront le fichier. Ainsi Excel reconnaitra a chaque fois la macro signee et ne demandera pas si l'utilisateur veut la bloquer ou non.
Quelques addresses qui m'ont ete utiles:
Description of digital certificates
How to add a digital signature to a custom macro project in Office 2003 and Office XP

A plutte
 

Statistiques des forums

Discussions
312 525
Messages
2 089 327
Membres
104 121
dernier inscrit
bobquad01