If... then...

Résolu

Bonjour,

Dans EXCEL, j'ai protégé des colonnes dans ma feuille et j'ai créé une macro avec un bouton pour que je puisse modifier les données.

Mais je voudrais créer une macro autoclose pour que si la protection de la feuille est enlevée celle-ci puisse se mettre à la fermeture de mon document automatiquement.

Merci d'avance ;)


Windows / Chrome 109.0.0.0

7 réponses

  1. C'est bon !  ça fonctionne en mettant "Activesheets.Protect".

    Merci beaucoup pour votre aide !!!

    1
    1. Bonjour

      Dans le module Workbook

      Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Sheets(1).Protect "mdp"
      End Sub

      Cdlmnt

      0
      1. Merci mais cette formule ne fonctionne que si la protection a été enlevée mais si la protection n'a pas été enlevée, ça beugue ;)

        0
        1. Bonjour, 

          il faut que vous le mettez dans ThisWorkbook dans Développeur

          Private Sub Workbook_BeforeClose(Cancel As Boolean)
          Sheets(1).Protect "mdp"
          ThisWorkbook.Save
          Application.DisplayAlerts = False
          End Sub
          

          Si c'est la feuille 1 bien sûr.

          Comme  a mis, j'ai juste rajouté deux ligne pour qu'à la fermeture,

          votre classeur s'enregistre automatiquement sans vous demandez si vous voulez l'enregistrer ou non.

          NB : Il faut l'mettre dans ThisWorkbook mais pas dans l'Module

          et il faut que vous changer Sheets(1) si c'est pas la feuille 1 et le "mdp" si besoin.

          Willzac


          0
          1. Je viens d'essayer ça (j'ai remplacé Sheets(1) par activesheet car je rajoute une feuille tous les ans) :

            Private Sub Workbook_BeforeClose(Cancel As Boolean)
            ActiveSheet.Protect "MDP"
            ThisWorkbook.Save
            Application.DisplayAlerts = False
            End Sub

            mais rien ne se passe !

            0
            1. Et j'ai oublié de préciser que les autres utilisateurs doivent pouvoir modifier certaines cellules sur chaque feuille !

              0
              1. Rebonjour,

                Le mieux je pense c'est de nous partager un fichier d'exemple car d'après votre question : 

                "créer une macro autoclose pour que si la protection de la feuille est enlevée celle-ci puisse se mettre à la fermeture de mon document automatiquement"

                Private Sub Workbook_BeforeClose(Cancel As Boolean) 'à la fermeture...
                ActiveSheets.Protect "MDP" 'verrouillée la feuille active avec un mot de passe : "MDP" 
                ThisWorkbook.Save 'enregistrer ce classeur
                Application.DisplayAlerts = False ' Ne pas afficher pas de message d'enregistrement
                End Sub

                En résumé : avant la fermeture de ce classeur, mettez le mot de passe "MDP a cette feuille et Enregistrer automatiquement ce classeur

                Willzac


                0