Bouton pour protéger/déprotéger toutes les feuilles d'un classeur

lematou75

XLDnaute Nouveau
Bonjour le forum,

J'ai construit un fichier avec plus de 40 onglets et dans chaque onglet j'ai déjà défini des cellules qui seront verrouillées (où l'utilisateur ne pourra pas changer le contenu, ni le format) et d'autres cellules/objets déverrouillés où les utilisateurs pourront modifier/insérer cellule/image-objet.

J'ai par ailleurs, créé deux boutons dans mon onglet 'Programmation' pour i) verrouiller toutes les feuilles et ii) pour les déverrouiller via un MDP Voici mon code ci-dessous

PHP:
Private Sub CommandButton45_Click()
mdp = InputBox("Entrer le mot de passe :", "Enlever protection")
If mdp = "" Then Exit Sub
If mdp <> "c135" Then
    MsgBox "Mot de passe administrateur"
Else
    For Each sh In Sheets
        sh.Unprotect mdp
    Next sh
Me.CommandButton45.Visible = False
Me.CommandButton46.Visible = True
End If
End Sub

Private Sub CommandButton46_Click()
For Each sh In Sheets
    sh.Protect "c135"
Next sh
Me.CommandButton45.Visible = True
Me.CommandButton46.Visible = False
End Sub

Cependant, je souhaiterais pouvoir lorsque je click sur le bouton 'Protection' (CommandButton46) faire apparaître une boite de dialogue similaire à celle de Accueil>Format>Protéger la feuille, pour autoriser les utilisateurs de cette feuille à :
i) Sélectionner les cellules verrouillées
ii) Sélectionner les cellules déverrouillées
iii) Changer le format de cellule
iv) Modifier les objets
v) Modifier les scénarios

Voici le code ci-dessous que j'ai essayé mais qui ne marche pas du tout :(

PHP:
Private Sub Workbook_Open()
For Each sh In Sheets
    sh.Protect "c135", DrawingObjects:=False, Contents:=False, Scenarios:=False
    sh.EnableSelection = xlNoRestrictions
Next sh
Feuil1.CommandButton46.Visible = False
Feuil1.CommandButton45.Visible = True
End Sub

Je suis débutant en macro et je ne sais pas comment résoudre cette problématique...Etant l'administrateur du fichier, je souhaite pouvoir protéger d'un seul coup tous les onglets en autorisant les utilisateurs à faire ce que j'ai mentionné de i) à v) et enlever la protection via mon MDP.

Je vous remercie pour votre aide.

Voici le fichier en PJ

Lematou
 

Pièces jointes

  • 2014 09 02 - PAS - Template Excel Final Output - v3.xlsm
    251.2 KB · Affichages: 76
  • 2014 09 02 - PAS - Template Excel Final Output - v3.xlsm
    251.2 KB · Affichages: 73
  • 2014 09 02 - PAS - Template Excel Final Output - v3.xlsm
    251.2 KB · Affichages: 74
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bouton pour protéger/déprotéger toutes les feuilles d'un classeur

Bonjour Lematou, bonjour le forum,

As-tu essayé avec l'enregistreur de macro ? Tu lances la macro, tu coches selon tes besoins, tu arrêtes l'enregistreur et tu lis le code. Souvent il faut épurer et/ou adapter mais ça donne de bon résultats...
 

lematou75

XLDnaute Nouveau
Re : Bouton pour protéger/déprotéger toutes les feuilles d'un classeur

Bonjour Robert,

Oui c'est effectivement ce que j'ai fait et je n'ai pas trouvé la solution. C'est pourquoi je fais appel au savoir de personnes largement plus compétentes que moi dans ce domaine :)

J'ai la même problématique sur un autre sujet où l'enregistreur de macros ne m'aide pas beaucoup. En attendant je suis complètement novice en ce qui concerne les macros VBA :confused:

Si quelqu'un sur le forum a des astuces, je suis preneur :D

Merci,

Lematou
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Bouton pour protéger/déprotéger toutes les feuilles d'un classeur

Bonjour Lematou, bonjour le forum,

En utilisant l'enregistreur de macro...

Code:
Sub Macro1()
Dim O As Object

For Each O In Sheets
    O.Protect Password:="c135", DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True
Next O
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87