XL 2019 Protection feuille

Tioneb_h

XLDnaute Nouveau
Bonjour,

J'ai mis une protection automatique sur deux feuilles :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Feuil1").Protect Password:="1234"
Sheets("Feuil3").Protect Password:="1234"

End Sub

comment est-ce que je peux faire pour ne pas avoir deux fois le message à l'ouverture de mon fichier :

1648625327512.png

Est-ce possible ?

merci d'avance,
Ben
 

Tioneb_h

XLDnaute Nouveau
Bonjour Tioneb,
Donnez nous plutôt le code que vous utilisez dans Workbook_Open, la macro Workbook_BeforeClose ne s'occupe que de la protection à la fermeture.
bonjour,

je ne suis pas expert :cool: ... voici le code que j'avais trouvé :

Code:
Private Sub Workbook_Open()

Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
With ActiveWorkbook.Worksheets(I)
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True
End With
Next I

End Sub

ben
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Il suffit de déprotéger la feuille au départ, vous n'aurez même plus de message du tout.
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
        .Unprotect
        .EnableAutoFilter = True
        .EnableOutlining = True
        .Protect Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True
    End With
Next I
End Sub
et s'il y a un mot de passe :
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
        .Unprotect ("1234")
        .EnableAutoFilter = True
        .EnableOutlining = True
        .Protect Password:="1234"
    End With
Next I
End Sub
 
Dernière édition:

Tioneb_h

XLDnaute Nouveau
Re,
Il suffit de déprotéger la feuille au départ, vous n'aurez même plus de message du tout.
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
        .Unprotect
        .EnableAutoFilter = True
        .EnableOutlining = True
        .Protect Contents:=True, UserInterfaceOnly:=True, AllowFormattingCells:=True
    End With
Next I
End Sub
et s'il y a un mot de passe :
VB:
Private Sub Workbook_Open()
Dim WS_Count As Integer
Dim I As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
For I = 1 To WS_Count
    With ActiveWorkbook.Worksheets(I)
        .Unprotect ("1234")
        .EnableAutoFilter = True
        .EnableOutlining = True
        .Protect Password:="1234"
    End With
Next I
End Sub
super merci... ça fonctionne 👍
 

GALOUGALOU

XLDnaute Accro
bonjour le fil
re tioneb_h
le code fourni dans le fil 3 n'explique pas la problématique du fil 1.
la solution de déprotéger la feuille contourne le problème, mais ne le résout pas.
Certainement, a l'ouverture vous devez avoir une macro dans l'événement de la feuille qui veut modifier une cellule protégée. Donc le plus simple, postez un classeur allégé de votre projet, sans données confidentielles.
cdt
galougalou
 

Discussions similaires

Statistiques des forums

Discussions
315 094
Messages
2 116 144
Membres
112 669
dernier inscrit
Guigui2502