Protection de feuilles sous EXCEL

Résolu
GUGUSSE2 Messages postés 72 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 février 2017 - 24 oct. 2007 à 15:00
GUGUSSE2 Messages postés 72 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 février 2017 - 26 oct. 2007 à 13:27
Bonjour a tous ceux qui voudont bien me lire et m'aider,







J'ai construit un fichier de plusieurs pages sous EXCEL
2007, que les élèves (1, 2, ...,  13) doivent compléter, avec bien évidement une partie à
laquelle ils ne doivent pas toucher (les cellules sont verrouillées).


Mon problème est le suivant :


La macro ci-dessous laisse les cellules verrouillées
accessibles !





Sub Protéger()


Dim MDP As String


MDP = InputBox("Entrer mot de passe :",
"Activation de la protection des feuilles")


For Each f In Worksheets



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    f.Protect MDP


Next


End Sub



 



La macro suivante (manip enregistrée) protège comme je le souhaite
les différentes feuilles, mais la macro de déprotection ainsi que le menu
contextuel de la feuille active ôtent la protection sans qu'il soit besoin de
fournir un mot de passe et cela est très gênant !


Quelqu'un a-t'il une solution ? (Nota : les noms des
feuilles ont été changés).



 



Sheets("1").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("2").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("3").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



    ActiveSheet.EnableSelection
= xlUnlockedCells



    Sheets("4").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("5").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("6").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("7").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("8").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("9").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("10").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("11").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("12").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("13").Select



   
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells


End Sub



 




J'aimerais que la macro de déprotection puisse être exécutée
depuis un autre fichier ; cela est-il envisageable ?


Un grand merci à tous ceux qui me répondront.

8 réponses

FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
25 oct. 2007 à 20:42
Bonjour,

Une autre solution serait peut-être de "déverouiller" les cellules qui sont accessibles par les élèves et de laisser la protection de façon permanente.
- sélection des cellules à déverouiller
- Menu "Format"
- Option  "Cellules"
- Onglet "Protection"
- Décocher "Verouiller"

Mais tout cela est du basic de chez basic.

Bon courage
3
cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008
25 oct. 2007 à 09:52
salut
 je suis moi même débutant donc essayer d'aider les autres m'entrainne bcp....
dans ton cas n'est il pas possible de conditionner le unlock par une messagebox. a partir de là, dans la msgbox tu met un mot de passe. et tu conditionne le tout

si mot de passe = correct, alors page débloquée
else page = protégé...

j'espère que cette idée peut t'aider... si cette méthode te va mais que t'as du mal a faire le code  dis le moi et on essaiera a 2.

see you space cow boy
0
cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008
25 oct. 2007 à 09:52
salut
 je suis moi même débutant donc essayer d'aider les autres m'entrainne bcp....
dans ton cas n'est il pas possible de conditionner le unlock par une messagebox. a partir de là, dans la msgbox tu met un mot de passe. et tu conditionne le tout

si mot de passe = correct, alors page débloquée
else page = protégé...

j'espère que cette idée peut t'aider... si cette méthode te va mais que t'as du mal a faire le code  dis le moi et on essaiera a 2.

see you space cow boy
0
cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008
25 oct. 2007 à 09:52
salut
 je suis moi même débutant donc essayer d'aider les autres m'entrainne bcp....
dans ton cas n'est il pas possible de conditionner le unlock par une messagebox. a partir de là, dans la msgbox tu met un mot de passe. et tu conditionne le tout

si mot de passe = correct, alors page débloquée
else page = protégé...

j'espère que cette idée peut t'aider... si cette méthode te va mais que t'as du mal a faire le code  dis le moi et on essaiera a 2.

see you space cow boy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008
26 oct. 2007 à 09:20
salut,
  j'aime bcp la simplicité de ton idée FaroukVazaha, si c'est pour des élèves de primaires OK, mais si c'est pour collège et au dessus, le premier élève qui si connait un peu en excel trouvera comment déverrouiller... tu vas ma dire que c'est également le cas si c une macro qui protège (encore faut il avoir qq compétence en VBA)
cordialement
lecorsaire
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
26 oct. 2007 à 12:07
Bonjour,
La simplicité est la clef de voute de tout bon programme.
Il est vrai que retirer la protection d'une feuille Excel est facile lorsque l'on connait les menus, mais peut être pas si l'on ignore le mot de passe servant à proteger la feuille en question.
Bien sur on peut aussi retrouver ce mot de passe avec beaucoup de connaissances en Vba Excel, ou dans un desassembleur quelconque, mais ................ qu'est-ce que fait cette personne, capables de telles choses et avec tant de capacités, comme élève dans un collège ????

A bientôt
FaroukVazaha
0
cs_lecorsaire59 Messages postés 39 Date d'inscription mardi 9 octobre 2007 Statut Membre Dernière intervention 17 octobre 2008
26 oct. 2007 à 13:12
ok je m'incline... j'avais oublié qu'il y avait un mot de passe pr débloquer les feuilles... bravo pr cette méthode
0
GUGUSSE2 Messages postés 72 Date d'inscription mercredi 24 octobre 2007 Statut Membre Dernière intervention 1 février 2017
26 oct. 2007 à 13:27
Boujour,


Pour ceux qui m'ont aidé et pour les autres qui seraient
intéressés, voici comment je m'en suis sorti, même si ce n'est pas la solution
la plus élégante :


J'ai créé un fichier comportant deux boutons auxquels j'ai
affecté les deux macros suivantes, ce fichier étant enregistré sur une
disquette ou sur une clef USB que le prof garde précieusement !


Il suffit d'ouvrir ce fichier ET le fichier
"xxx.xlsm" pour pouvoir protéger ou déprotéger d'un seul clic toutes
les feuilles, et les macros ne figurent pas dans le fichier vu par les élèves.
(autre avantage, le fichier que le prof doit mettre à jour est ouvert !).


Votre aide m'a été précieuse.



 




Sub Déprotéger_xxx()


'


Workbooks("xxx").Activate


Dim MDP As String


MDP = InputBox("Entrer mot de passe :",
"Désactivation de la protection des feuilles")


For Each f In Worksheets


f.Unprotect MDP


Next


End Sub



 




Sub Protéger_xxx()


'



    Workbooks("xxx").Activate



    Sheets("1").Select



   
ActiveSheet.Protect "toto", DrawingObjects:=True,
Contents:=True, Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("2").Select



   
ActiveSheet.Protect "toto", DrawingObjects:=True,
Contents:=True, Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("3").Select



   
ActiveSheet.Protect "toto", DrawingObjects:=True,
Contents:=True, Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells



    Sheets("4").Select



   
ActiveSheet.Protect "toto", DrawingObjects:=True,
Contents:=True, Scenarios:=True



   
ActiveSheet.EnableSelection = xlUnlockedCells
0
Rejoignez-nous