Protection feuille automatique
Bonjour,
Je cherche un code VBA qui me permettrait de protéger toute mes feuilles lors de l'enregistrement du document mais qui permet tout de même de consulter les feuilles sans les modifier et je voudrais également pouvoir déverrouiller toutes mes onglets en même temps avec le même mot de passe lorsque je veux les modifier.
J'ai trouvé ce code sur internet qui fonctionne très bien mais il manque l'option de déverrouillé toutes les onglet en même temps de plus je n'ai pas besoin d'un mot de passe différent pour certaines feuilles j'utilise le même merci:
dans la Thisbokbook colle ce code
Option Explicit
Const mot1 As Variant = "titi"
Const mot2 As Variant = "toto"
Private Sub Workbook_Open()
Call protections
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call protections
End Sub
Sub protections()
Sheets("Feuil1").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil2").Protect Password:=mot1
Sheets("Feuil4").Protect Password:=mot2
Sheets("Feuil5").Protect Password:=mot2
Sheets("Feuil6").Protect Password:=mot2
Sheets("Feuil7").Protect Password:=mot2
End Sub
Bonjour,
Je pense que l'astuce va être d'insérer un bouton quelque part pour lancer une macro comme suit.
Sub Déprotéger()
If Application.InputBox("Veuillez entrer le mot de passe afin de déverrouiller toutes les feuilles.", "Mot de passe ?")=mot1 Then
Sheets("Feuil1").Unprotect Password:=mot1
Sheets("Feuil2").Unprotect Password:=mot1
Sheets("Feuil2").Unprotect Password:=mot1
Sheets("Feuil4").Unprotect Password:=mot1
Sheets("Feuil5").Unprotect Password:=mot1
Sheets("Feuil6").Unprotect Password:=mot1
Sheets("Feuil7").Unprotect Password:=mot1
Else
Msgbox "Erreur de mot de passe.", vbExclamation + vbOkOnly, "Erreur."
End If
End SubA tester.
Bon merci
Je vais essayé ce que tu me propose je ne suis juste pas certain de la procédure pour utiliser ta macro avec un bouton mais je vais essayer tout de même merci je te tiens au courant.
merci de ton aide
Bonjour,
Une proposition à étudier.
La dé protection des feuilles s'effectue avec CTRL+SHIFT+W.
Cdlt.
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Protect_Worksheets
ThisWorkbook.Save
End SubOption Explicit
Option Private Module
Public Const PWD As String = "azerty"
Public Sub Protect_Worksheets()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:=PWD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
Next ws
End Sub
Public Sub UnProtect_Worksheets()
' CTRL+SHIFT+W pour exécuter la procédure
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Unprotect Password:=PWD
Next ws
End SubJean-Eric a écrit :Bonjour,
Une proposition à étudier.
La dé protection des feuilles s'effectue avec CTRL+SHIFT+W.
Cdlt.
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) Protect_Worksheets ThisWorkbook.Save End SubOption Explicit Option Private Module Public Const PWD As String = "azerty" Public Sub Protect_Worksheets() Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In ActiveWorkbook.Worksheets ws.Protect Password:=PWD, _ DrawingObjects:=True, _ Contents:=True, _ Scenarios:=True, _ UserInterfaceOnly:=True Next ws End Sub Public Sub UnProtect_Worksheets() ' CTRL+SHIFT+W pour exécuter la procédure Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In ActiveWorkbook.Worksheets ws.Unprotect Password:=PWD Next ws End Sub
Merci bien pour ta réposnse, j'ai téléchargé ton document excel, mais lorsque j'effectue la manipulation CTRL+SHIFT+W sur une des pages il ne se produit rien .... je ne comprends pas .... je continue a essayer de comprendre ce qui ce passe mais si tu as une explication merci de m'aider
Re,
Inhibe 'Option Private Module, et redis moi.
Cdlt.
nota : que se passe-t-il si tu fais Ctrl+w?
Jean-Eric a écrit :Re,
Inhibe 'Option Private Module, et redis moi.
Cdlt.
nota : que se passe-t-il si tu fais Ctrl+w?
Bonjour,
Si je comprends bien tu veux que j'enlève Option Private Module de ton code ? ce qui donne ce qui suit ....
Option Explicit
Public Const PWD As String = "azerty"
Public Sub Protect_Worksheets()
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Protect Password:=PWD, _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True
Next ws
End Sub
Public Sub UnProtect_Worksheets()
' CTRL+SHIFT+W pour exécuter la procédure
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
ws.Unprotect Password:=PWD
Next ws
End Sub
si je fais cela lorsque je fais CTRL+SHIFT+W toutes les pages ce déprotège mais ça ne me demande aucun code....
Ensuite si je fais Ctrl+w le Excel ce ferme.
merci
Sharney a écrit :Bonjour,
Je pense que l'astuce va être d'insérer un bouton quelque part pour lancer une macro comme suit.
Sub Déprotéger() If Application.InputBox("Veuillez entrer le mot de passe afin de déverrouiller toutes les feuilles.", "Mot de passe ?")=mot1 Then Sheets("Feuil1").Unprotect Password:=mot1 Sheets("Feuil2").Unprotect Password:=mot1 Sheets("Feuil2").Unprotect Password:=mot1 Sheets("Feuil4").Unprotect Password:=mot1 Sheets("Feuil5").Unprotect Password:=mot1 Sheets("Feuil6").Unprotect Password:=mot1 Sheets("Feuil7").Unprotect Password:=mot1 Else Msgbox "Erreur de mot de passe.", vbExclamation + vbOkOnly, "Erreur." End If End SubA tester.
J'ai essayé d'utiliser ton code avec un bouton pour déprotéger toutes les feuilles en même temps, mais ça ne fonctionne pas je ne comprends pas ce que je fais de ne pas correct voici mon fichier et le mot de passe pour déprotéger les feuilles manuellement est qwerty
merci d'avance si quelqu'un peut m'ider
personne n'a de solution ?
Jean-Eric a écrit :Bonjour,
A tester...
Cdlt.
Oui merci le fichier semble bien fonctionné le seul problème qu'il me reste est que lorsque je rentre le mot de passe les caractères son visible... est t-il possible de rendre les caractère invisible soit sous forme de point ou autres ????
merci beaucoup pour le fichier
jippii101 a écrit :Jean-Eric a écrit :Bonjour,
A tester...
Cdlt.
Oui merci le fichier semble bien fonctionné le seul problème qu'il me reste est que lorsque je rentre le mot de passe les caractères son visible... est t-il possible de rendre les caractère invisible soit sous forme de point ou autres ????
merci beaucoup pour le fichier
personne ne sais comment je peux rendre mon mot de passe caché avec la macro ?
- Messages
- 1'119
- Excel
- 2013 FR
- Inscrit
- 18/09/2015
- Emploi
- Développeur Bureautique Indépendant (Excel)
Bonjour jippii101
Un peu en retard pour une réponse...
A mon avis la seule solution c'est de cacher le mot de passe quelque part sur une feuille et d'y faire référence
Comment le cacher sur une feuille
mettre un format perso à la cellule qui le contient tel que ;;;
mettre fond/car en blanc/blanc
et enfin masquer ligne et colonne
et éventuellement masquer la feuille, la protéger par un autre mot de passe (dont il faut se souvenir évidement)
et ne jamais la déprotéger