Protéger un fichier : empêcher les modifications, sauf celles gérées par des macros

FloreR

XLDnaute Nouveau
Bonjour,

J'ai protégé un fichier excel qui doit être utilisé par diverses personnes, pour éviter qu'elle ne modifient des cellules qui ne doivent pas être modifiées.

Il se trouve qu'il y a dans ce fichier un certain nombre de macros qui modifient des cellules (mais elles, elles ont le droit !). Donc pour éviter que mes macros ne soient bloquées, j'ai ajouté dans mon code :
Sheets("...").Unprotect
'tout mon code inchangé
Sheets("...").Protect

Jusque là, tout va bien.
Le seul problème, c'est que pour l'instant, n'importe qui est en mesure d'enlever la protection à partir de l'onglet révision... Et il faut absolument que cela soit évité !
Du coup, j'ai pensé à mettre un mot de passe.

Mais (car le mais arrive enfin), dans ce cas (quand la protection est activée avec le mot de passe) lorsque je lance mes macros, une fenêtre s'ouvre pour me demander le mot de passe afin d'enlever la protection. (Pas bête, excel !)

D'où ma question : existe-t-il un moyen pour écrire le mot de passe quelque part dans la macro, faire en sorte qu'il soit copié-collé automatiquement au bon endroit, afin que la feuille soit débloquée, tout ça en "cachant les actions" pour que l'utilisateur ne s'aperçoive de rien ?

Ou bien, existe-t-il une autre solution pour protéger mon classeur, tout en permettant à mes macros de s'effectuer tranquillement ?

Merci d'avance pour votre aide !
 

MJ13

XLDnaute Barbatruc
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Bonjour FloreR

Tu peux mettre un mot de passe sur ton projet VB, ainsi, tu verras si tu as des problèmes par la suite.
 

FloreR

XLDnaute Nouveau
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Bonjour MJ13,

Si je comprends bien ta réponse, tu me proposes de protéger mon code VBA par un mot de passe. Je l'ai déjà fait, et cela évite que les utilisateurs aient accès à mon code, mais cela ne suffit pas pour les empêcher de modifier les cellules du fichier.

(Je ne sais pas si je suis claire dans mes explications...)

Merci,
FloreR
 

Pierrot93

XLDnaute Barbatruc
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Bonjour Flore, Michel:)

pour que les macros fonctionnes sur feuille protégée, il faut que la protection se fasse par vba en utilisant l'argument "userinterfaceonly", le code ci-dessous ets à placer dans le module "thisworkbook", se déclenche à l'ouverture du classeur :

Code:
Private Sub Workbook_Open()
Sheets("Feuil1").Protect "toto", userinterfaceonly:=True
End Sub

bon parès midi
@+
 

tototiti2008

XLDnaute Barbatruc
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Bonjour FloreR, Bonjour Michel,

tu peux protéger une bonne fois ta feuille avec un code VBA qui impose que l'utilisateur connaisse me mot de passe mais le VBA aura le droit de modifier les données :

Code:
ActiveSheet.Protect Password:="abcd", userinterfaceonly:=True
Ca évitera d'avoir à reprotéger et déprotéger ta feuille tout le temps
Avec la protection du code proposé par Michel, ça devrait aussi bloquer un peu les utilisateurs...
Mais tout ça avec une limite non négligeable : il est facile de trouver un code VBA sur le net qui déprotège n'importe quelle feuille sans pour autant avoir le mot de passe.

Edit : Bonjour Pierrot, Bonjour Hippolite, à la bourre moi :D
 

FloreR

XLDnaute Nouveau
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Bonjour Pierrot,

Merci pour la solution.
Effectivement, cela marche désormais : quand je veux directement ôter la protection depuis l'onglet Révision, il me faut le mot de passe, et quand je lance les macros, il me demande un mot de passe, mais les macros s'effectuent quand même, même sans indiquer de mot de passe et en cliquant sur "annuler" dans la boîte de dialogue "Ôter la protection de la feuille".
Néanmoins, serait-il possible que cette boîte de dialogue ne s'affiche pas du tout ? (Puisqu'en réalité, elle ne sert à rien...)

Enfin, dernière question : que signifie le "toto" dans ta ligne de code ? ;-)

Merci encore !!!

FloreR
 

Pierrot93

XLDnaute Barbatruc
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Re,

Code:
Enfin, dernière question : que signifie le "toto" dans ta ligne de code ? ;-)
"toto" est le mot de passe utilisé... Avec ce code logiquement pas de boite de dialogue qui s'affiche suite à l'exécution du code....
 

FloreR

XLDnaute Nouveau
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

OK, je viens de comprendre le "toto"... Je pensais qu'il avait gardé mon ancien mot de passe.

Titi, ta remarque sur les mots de passe sur internet qui permettent de tout déprotéger me fait penser que ce que je suis en train de faire ne sert à rien...

Existe-t-il un moyen plus fiable pour réellement protéger mon document ? (En gros, dont le système de protection soit plus difficile à cracker ?)

Merci !
 

FloreR

XLDnaute Nouveau
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Ah, ça doit être parce que j'ai laissé mes anciennes phrases de code
Sheets(...).Unprotect
au début de chacune de mes macros.

Merci Pierrot !
 

Hippolite

XLDnaute Accro
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Re,
Protection : C'est assez illusoire car en ouvrant ton fichier avec OpenOffice, on a accès à tout le code des macros (et donc aux mots de passe qui y auraient été écrits). C'est le moyen de secours ultime quand on a oublié son mot de passe.
A+
 

Pierrot93

XLDnaute Barbatruc
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

Re,

Existe-t-il un moyen plus fiable pour réellement protéger mon document ? (En gros, dont le système de protection soit plus difficile à cracker ?)

utiliser un autre logiciel... mais bon, ce genre de procédure est généralement suffisante pour bloquer la plupart des utilisateurs....
 

FloreR

XLDnaute Nouveau
Re : Protéger un fichier : empêcher les modifications, sauf celles gérées par des mac

OK...
Merci encore pour toutes vos réponses. :)

Je croise les doigts pour que les personnes qui utiliseront ce fichier ne viennent pas sur ce forum !
 

Discussions similaires

Statistiques des forums

Discussions
314 653
Messages
2 111 592
Membres
111 208
dernier inscrit
estalavista