Protection et deprotection d'un classeur par macros

  • Initiateur de la discussion Initiateur de la discussion micky01
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

micky01

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai classeur dans lequel je fais apparaitre et disparaitre des feuilles suivant les bouotns cliqués...
J'aimerais bloquer le classeur pour que l'accès manuel à l'affichage ou au masquage des feuilles soit desactivé.
Bien entendu, si mon classeur est tout le temps protégé, mes macros ne s'exécutent pas :s
y'a t'il un moyen de proteger et déprotéger le classeur dans chaque macros qui le nécessite comme on peut le faire pour les feuilles?
Merci de vos réponses

Amicalement
 
Re : Protection et deprotection d'un classeur par macros

Bonjour


Voir du côté de UserInterFaceOnly

(Utilises le moteur de recherche du forum avec ce mot-clé)



Un exemple:
Code:
Private Sub Workbook_Open()
Dim wSheet As Worksheet
    For Each wSheet In Worksheets
    wSheet.Protect Password:="motdepasse", UserInterFaceOnly:=True
Next wSheet
End sub
 
Re : Protection et deprotection d'un classeur par macros

Bonjour à tous,

Staple : il me semble que micky01 veut protéger le classeur, pas les feuilles... UserInterfaceOnly marche-t-il pour protéger le classeur ?

Micky01 : sinon tu peux déprotéger le classeur avant le code et puis le reprotéger après :

ActiveWorkbook.UnProtect Password:="MotDePasse"
'ton code
ActiveWorkbook.Protect Password:="MotDePasse", Structure:=True, Windows:=False
 
Re : Protection et deprotection d'un classeur par macros

Bonjour micky01, staple1600, le forum.

Voici le code que j'utilise dans tous les classeurs "publiques" que je créé.
Code:
Option Explicit
Sub ProtegeTout()
Dim feuil

For Each feuil In Application.Sheets

feuil.Protect Password:="mot_de_passe", DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True

'mot_de_passe à adapter

Next feuil

End Sub

Sub DeprotegeTout()
Dim feuil

For Each feuil In Application.Sheets

feuil.Unprotect Password:="mot_de_passe"
'mot_de_passe à adapter

Next feuil

End Sub
J'ai trouvé ce code sur ce forum biensur...

Comment l'utiliser?
Pour chacune de tes macros, fais ceci :

Code:
Sub Ta_macro ()

Application.ScreenUpdating = False
Call DeprotegeTout

.....Code de ta macro

Call ProtegeTout
Application.ScreenUpdating = True

End Sub

J'espère que ceci t'aidera dans ton projet.

++
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
628
S
Réponses
9
Affichages
4 K
Sylvie_076
S
W
Réponses
1
Affichages
1 K
wolfloner
W
H
Réponses
18
Affichages
23 K
hook85
H
V
Réponses
4
Affichages
2 K
V
L
Réponses
3
Affichages
1 K
Retour