Protection de feuilles sous EXCEL [Résolu]

Messages postés
72
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 février 2017
- - Dernière réponse : 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.
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
42
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
11 septembre 2010
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 189 internautes nous ont dit merci ce mois-ci

Commenter la réponse de FaroukVazaha
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
0
Merci
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
Commenter la réponse de cs_lecorsaire59
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
0
Merci
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
Commenter la réponse de cs_lecorsaire59
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
0
Merci
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
Commenter la réponse de cs_lecorsaire59
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
0
Merci
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
Commenter la réponse de cs_lecorsaire59
Messages postés
42
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
11 septembre 2010
0
Merci
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
Commenter la réponse de FaroukVazaha
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
0
Merci
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
Commenter la réponse de cs_lecorsaire59
Messages postés
72
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 février 2017
0
Merci
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
Commenter la réponse de GUGUSSE2