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 Sub

A 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.

12protection.xlsm (20.42 Ko)
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Protect_Worksheets
    ThisWorkbook.Save

End Sub
Option 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
Jean-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 Sub
Option 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 Sub

A 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 ?

Bonjour,

A tester...

Cdlt.

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 ?

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

Rechercher des sujets similaires à "protection feuille automatique"