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
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
 

chaelie2015

XLDnaute Accro
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
Re
Merci , c'est la meilleure proposition.
Merci
 

Discussions similaires

Statistiques des forums

Discussions
314 720
Messages
2 112 187
Membres
111 457
dernier inscrit
anglade