Protection auto des feuilles à la fermeture d'un fichier

Bonjour,

La macro suivante permet de protéger et de déprotéger toutes les feuilles d'un fichier en même temps, c'est très pratique.

Je voudrais savoir comment l'adapter pour que : si j'ai déprotégé mon fichier et que j'oublie de le reprotéger, la protection se fasse automatiquement à la fermeture du fichier.

Merci de votre aide précieuse.

Bonne journée.

Sub WsLock(Optional Y)

Dim PWd$

PWd = "galopin"

'Protége ou déprotège toutes les feuilles

Application.ScreenUpdating = False

If IsMissing(Y) Then

For i = 1 To Worksheets.Count

Worksheets(i).Protect PWd

[A1].Select

Next

Else

For i = 1 To Worksheets.Count

Worksheets(i).Unprotect PWd

[A1].Select

Next

End If

End Sub

Dans cette macro les feuilles sont protégées avec un mot de passe : "galopin" il faut le remplacer avec ton mot de passe. S'il n'y a aucun mot de passe supprimer "Pwd" (ligne 8 et 13) et la ligne 3. Ensuite, pour Déprotéger :

Sub deprotege()

WsLock 0

End Sub

et pour protéger :

Sub protege()

WsLock

End Sub

Les 3 macros doivent être mises les unes à la suite des autres dans un module.

Il reste à définir les raccourcis clavier pour la macro "protection" et l'autre macro "déprotection".

Bonjour,

A tester en mettant le code qui suit dans Thisworkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' Protéger les feuilles du classeur
    WsLock 
End Sub

Bonjour Readi,

Grand merci à toi, c'est impeccable, ça fonctionne parfaitement.

Bonne journée.

Pasqi

Bonsoir les Amis et le Forum,

Une interrogation qui me tracasse, le résultat final est parfait, mais serait-il possible de continuer la protection automatique de toutes les feuilles sauf de la première feuille qui serait en permanence disponible et libre de toute protection ?

Feuille 1 libre en permanence et les autres protéger ...

Merci par avance de votre aide.

Bonsoir,

J'ai repris le code de Pasqi en intégrant ta demande :

Sub WsLock(Optional Y)
    Dim PWd$
    PWd = "galopin"

    Application.ScreenUpdating = False

    'Protége ou déprotège toutes les feuilles
    If IsMissing(Y) Then
        For i = 1 To Worksheets.Count
            If Worksheets(i).Name <> "Feuille 1" Then
                Worksheets(i).Protect PWd
                [A1].Select
            End If
        Next i
    Else
        For i = 1 To Worksheets.Count
            If Worksheets(i).Name <> "Feuille 1" Then
                Worksheets(i).Unprotect PWd
                [A1].Select
            End If
        Next i
    End If
End Sub

Mercis readi, Pasqi,

Merci encore une fois pour ce post, et admiration pour cette réponse précise, rapide et exellente. Les solutions proposées resteront très pratiques pour l'utilisation rapide des protections.

Merci à tous.

Bonjour,

Je ressucite ce sujet pour poser une petite question. J'aimerais adapter ce code a ce que je veux mais ca ne marche pas top...

Ce que je veux :

Au moment de fermer le fichier, ca protège les feuilles.

Le probleme est que les feuilles sont protégées selon les paramètres par défaut d'Excel, or moi je veux désactiver la sélection de toutes les cellules (les deux premières options lorsqu'on clique sur "protéger feuille"). Comment le rajouter dans le code a la fermeture du fichier ?

merci d'avance !

Paul

Bonjour

Tu peux utiliser lors de la protection

    With Sheets("Feuil1") ' A adapter
      .Protect Password:="paulochon", DrawingObjects:=True, Contents:=True, Scenarios:=True
      .EnableSelection = xlNoSelection
    End With

ca s'approche de ce que je veux faire, mais :

- la selection des cellules est toujours possible a la réouverture du fichier, j'aimerais que ce ne soit pas possible, comme quand on déselectionne els deux premières options lorsqu'on protège "manuellement"...

- Problème bizarre : il me dit que le mot de passe est erroné quand je veux déprotéger la feuille... (et oui, j'ai bien pensé a enlever le capslock !)

merci pour ton aide !

Bonsoir

Bizarre autant qu'étrange

J'ai fait un test et pas de soucis

A l'ouverture du fichier la feuille est toujours protégée et aucune sélection de cellules possible

Et pour la dé-protection le mot de passe "paulochon" est accepté sans problème

Question : Tu sauves quand le fichier est protégé ?

A suivre

Mais tu es avec 2007 ceci peut expliquer cela. Peut-être que les paramètres ne sont pas les mêmes

Oui, je sauve puisque lorsque je quitte il applique la protection (je suppose qu'il considère ca comme un changement) donc il me demande si je veux sauvegarder mon travail. Je réponds que oui, et ca donne ce que j'ai décrit...

Et oui, je suis sous 2007, peut etre que ca y est pour quelque chose... mais je vais continuer de chercher pour savoir si c'est pas mon cerveau qui faillit !

Bonsoir

Il doit y avoir confusion

Oui, je sauve puisque lorsque je quitte il applique la protection

Comment il applique la protection ?

Mets le code suivant dans ThisWorkbook

Private Sub Workbook_Open()
  With Sheets("Feuil1") ' A adapter
   .Protect Password:="paulochon", DrawingObjects:=True, Contents:=True, Scenarios:=True
    .EnableSelection = xlNoSelection
  End With
End Sub

A l'ouverture de ton classeur la feuille sera protégée

Rechercher des sujets similaires à "protection auto feuilles fermeture fichier"