If... then...
Résolumounapo Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
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
Bonjour
Dans le module Workbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).Protect "mdp"
End Sub
Cdlmnt
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 ;)
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 @ccm81 StatutMembre 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe 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 !
Et j'ai oublié de préciser que les autres utilisateurs doivent pouvoir modifier certaines cellules sur chaque feuille !
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