Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 (RESOLU) Protection automatique des nouvelles feuilles

chaelie2015

XLDnaute Accro
Bonjour Forum
J'ai un code qui crée des feuilles nommées 'Item N°x' (avec x variant) à partir de la feuille nommée 'Type'. Ce code copie également le contenu de la feuille 'Type' dans les nouvelles feuilles qui commencent par 'Item N°...'. La feuille 'Type' est protégée au démarrage du classeur grâce au code suivant
VB:
Private Sub Workbook_Open()
Sheets("Type").Protect "CharBel", userinterfaceonly:=True 'PROTECTION DE LA FEUILLE QLQ SOIT LE CODE
End Sub
Maintenant, je souhaite avoir un code identique à celui de la feuille 'type' dans le `Private Sub Workbook_Open()` et que ces nouvelles feuilles soient protégées une fois créées. Est-ce possible ,pour que chaque nouvelle feuille créée soit automatiquement protégée.
--------------------------------------
Pour rappel : Ce code s'exécute automatiquement lorsque le classeur est ouvert. Il protège la feuille nommée "Type" en utilisant le mot de passe "CharBel". La protection est appliquée de manière que le code VBA puisse toujours modifier la feuille sans nécessiter de mot de passe.
Merci
 
Dernière édition:
Solution
Si l'on veut que les feuilles créées soient protégées dès leur création mettre dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim Sh As Object
For Each Sh In Sheets
    Sh.Protect "CharBel", UserInterfaceOnly:=True
Next
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Protect "CharBel", UserInterfaceOnly:=True
End Sub

job75

XLDnaute Barbatruc
Bonjour chaelie2015,

Pour protéger toutes les feuilles du classeur :
VB:
Private Sub Workbook_Open()
Dim Sh As Object
For Each Sh In Sheets
    Sh.Protect "CharBel", UserInterfaceOnly:=True
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Si l'on veut que les feuilles créées soient protégées dès leur création mettre dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim Sh As Object
For Each Sh In Sheets
    Sh.Protect "CharBel", UserInterfaceOnly:=True
Next
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.Protect "CharBel", UserInterfaceOnly:=True
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Bonjour tous,
ou encore dès nouvel onglet
Trés étonnant que Gérard n'y est pas pensé
Bruno
VB:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Protect "CharBel", UserInterfaceOnly:=True
End Sub
 

chaelie2015

XLDnaute Accro
Re
Merci , c'est la meilleure proposition.
Merci
 

Discussions similaires

Réponses
5
Affichages
440
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…