If... then...

Résolu/Fermé
mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 - 18 janv. 2023 à 09:49
mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 - 18 janv. 2023 à 14:58

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

mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 1
18 janv. 2023 à 14:58

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

Merci beaucoup pour votre aide !!!

1
ccm81 Messages postés 10906 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 13 janvier 2025 2 429
18 janv. 2023 à 12:04

Bonjour

Dans le module Workbook

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

Cdlmnt

0
mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 1
18 janv. 2023 à 12:06

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
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
18 janv. 2023 à 12:49

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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 1
18 janv. 2023 à 13:56

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
mounapo Messages postés 65 Date d'inscription lundi 18 juin 2012 Statut Membre Dernière intervention 15 novembre 2023 1
18 janv. 2023 à 14:08

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

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
Modifié le 18 janv. 2023 à 15:05

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