Protéger et déprotéger des feuilles

Bonsoir à tous

j ai mis ce code dans un classeur Excel pour protéger les feuilles

Private Sub Workbook_Open()

PWd = "mdp"
For I = 1 To Worksheets.Count
Worksheets(I).Protect Password:=PWd, UserInterfaceOnly:=True

Next

End Sub

j aurais svp 2 questions :

1) c'est bête comme question mais à l ouverture du classeur la protection n'est pas effective , elle le sera uniquement quand j aurais activée les macros ( dans le message de sécurité ) Ainsi la feuille active n est pas protégée du coup.

2)Je supprime le code mais les feuilles restent protégées , pouvez vous m indiquer comment désactivée la protection ?

Merci d'avance

Bonsoir,

voici deux sub pour protéger et déprotéger les feuilles :

Sub met_protect()
    For i = 1 To Worksheets.Count
        Worksheets(i).Protect Password:=Sheets(1).Cells(1, 1).Value
    Next i
End Sub
Sub enlève_protect()
    For i = 1 To Worksheets.Count
        Worksheets(i).Unprotect Password:=Sheets(1).Cells(1, 1).Value
    Next i
End Sub

Avec en hypothèse que le mot de passe pour verrouiller les feuilles se trouve en A1 de la première feuille du classeur.

@ bientôt

LouReeD

Bonjour,

Essaie ainsi :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        ws.Protect Password:=PWd, UserInterfaceOnly:=True
    Next

    ThisWorkbook.Save

End Sub
136tournament974.xlsm (16.29 Ko)

Bonjour,

merci pour ces propositions

j ai testé la solution de Jean Eric

a l ouverture du fichier toutes les feuilles sont bien protégées et en activant "oter le mot de passe" dans l'onglet de la feuille, la feuille n est plus protégée sans meme que l utilisateur indique un mot de passe.

si je vais dans VB et que j efface tous les codes, les feuilles du classeur restent protégées mais cette fois ci il faut un mot de passe pour oter la protection

pour comprendre : comment se fait il qu'en supprimant les différents codes VBA la protection des feuilles reste active ?

Sans code VBA on peut aussi lever la protection non ? Dans le menu excel n y a t il une possibilité de le faire ? avec le mot de passe initial?

Merci d'avance

Bonjour,

merci pour ces propositions

j ai testé la solution de Jean Eric

a l ouverture du fichier toutes les feuilles sont bien protégées et en activant "oter le mot de passe" dans l'onglet de la feuille, la feuille n est plus protégée sans meme que l utilisateur indique un mot de passe.

si je vais dans VB et que j efface tous les codes, les feuilles du classeur restent protégées mais cette fois ci il faut un mot de passe pour oter la protection

pour comprendre : comment se fait il qu'en supprimant les différents codes VBA la protection des feuilles reste active ?

Sans code VBA on peut aussi lever la protection non ? Dans le menu excel n y a t il une possibilité de le faire ? avec le mot de passe initial?

Merci d'avance

Bonjour,

merci pour ces propositions

j ai testé la solution de Jean Eric

a l ouverture du fichier toutes les feuilles sont bien protégées et en activant "oter le mot de passe" dans l'onglet de la feuille, la feuille n est plus protégée sans meme que l utilisateur indique un mot de passe.

si je vais dans VB et que j efface tous les codes, les feuilles du classeur restent protégées mais cette fois ci il faut un mot de passe pour oter la protection

pour comprendre : comment se fait il qu'en supprimant les différents codes VBA la protection des feuilles reste active ?

Sans code VBA on peut aussi lever la protection non ? Dans le menu excel n y a t il une possibilité de le faire ? avec le mot de passe initial?

Merci d'avance

Bonjour,

j ai testé la solution de Jean Eric

a l ouverture du fichier toutes les feuilles sont bien protégées et en activant "ôter le mot de passe" dans l'onglet de la feuille, la feuille n est plus protégée sans même que l utilisateur indique un mot de passe.

normal puisque PWd n(est pas défini sans la sub donc égal à vide...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet

    For Each ws In ThisWorkbook.Worksheets
        ws.Protect Password:=PWd, UserInterfaceOnly:=True
    Next

    ThisWorkbook.Save

End Sub

pour comprendre : comment se fait il qu'en supprimant les différents codes VBA la protection des feuilles reste active ?

le fait de supprimer du code ne correspond pas à "lancer" la procédure de supprimer les protection.

Le code vous permet d'actionner un "bouton" de protection mais le fait de le supprimer n'a aucune incidence sur ce bouton.

C'est comme une télécommande de TV, vous appuyez sur le bouton allumage et la télé s'allume, vous jetez à la poubelle la télécommande, la télé reste allumée, elle ne s'éteint pas

@ bientôt

LouReeD

Bonjour merci pour cet éclairage

effectivement je comprends un peu mieux le principe

je te souhaite une bonne journée

Bonjour à toutes et à tous,

La constante PWd est déclarée en Public et est égale à mdp.

Cdlt

Public Const PWd As String = "mdp"

Public Sub ProtecWorksheets()
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Protect Password:=PWd, UserInterfaceOnly:=True
    Next
End Sub

Public Sub UnProtecWorksheets()
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Unprotect (PWd)
    Next
End Sub
Rechercher des sujets similaires à "proteger deproteger feuilles"