Microsoft 365 VBA bouton pour protégé et déprotégé des feuilles mais doit autorisé le filtrage + grouper et dégrouper

Diego-Andres

XLDnaute Nouveau
Bonsoir à tous,

J'explique mon problème. J'ai beaucoup de feuilles protégés avec un code en VBA ( voir ci-dessous).
Je voudrais à chaque fois que j'appuie sur le bouton bloqué que le filtre et grouper et dégrouper soient autorisés.

Je sais que je peux utiliser ces codes mais je vois pas comment les introduire sur mes codes ci-dessous.
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="xxx", UserInterfaceOnly:=True




VB:
Sub PictureUnLock()
mdp = InputBox("Veuillez entrer le mot de passe, svp", "Déprotection")
If mdp = "" Then Exit Sub
If mdp <> "XXX" Then
    MsgBox "vous n'avez pas les droits"
Else
    For Each Sh In Sheets
        Sh.Unprotect mdp
    Next Sh
    End If
End Sub

Code:
Sub PictureLock()
For Each Sh In Sheets
    Sh.Protect "XXX"
Next Sh
End Sub


Merci d'avance
 
Solution
bonsoir le forum
re diego-andres

le code que je vous propose, est le résultat d'une déduction, mais je ne vous garantis pas qu'il soit totalement
en harmonie avec les règles de l'art.

pour un foncitonnement optimum des macros, il est important de déclarer les variables.
VB:
Sub test()
Dim SH As Worksheet
  For Each SH In Worksheets
    SH.Protect Password:="XXX", UserInterfaceOnly:=True, Contents:=True, AllowFiltering:=True
Next SH
End Sub




Sub PictureUnLock()
Dim SH As Worksheet
mdp = InputBox("Veuillez entrer le mot de passe, svp", "Déprotection")
If mdp = "" Then Exit Sub
If mdp <> "XXX" Then
    MsgBox "vous n'avez pas les droits"
Else
    For Each SH In Worksheets
        SH.Unprotect mdp
    Next SH
    End If
End Sub
cdt...

GALOUGALOU

XLDnaute Accro
bonsoir le forum
re diego-andres

le code que je vous propose, est le résultat d'une déduction, mais je ne vous garantis pas qu'il soit totalement
en harmonie avec les règles de l'art.

pour un foncitonnement optimum des macros, il est important de déclarer les variables.
VB:
Sub test()
Dim SH As Worksheet
  For Each SH In Worksheets
    SH.Protect Password:="XXX", UserInterfaceOnly:=True, Contents:=True, AllowFiltering:=True
Next SH
End Sub




Sub PictureUnLock()
Dim SH As Worksheet
mdp = InputBox("Veuillez entrer le mot de passe, svp", "Déprotection")
If mdp = "" Then Exit Sub
If mdp <> "XXX" Then
    MsgBox "vous n'avez pas les droits"
Else
    For Each SH In Worksheets
        SH.Unprotect mdp
    Next SH
    End If
End Sub
cdt
galougalou
 

Diego-Andres

XLDnaute Nouveau
S
bonsoir le forum
re diego-andres

le code que je vous propose, est le résultat d'une déduction, mais je ne vous garantis pas qu'il soit totalement
en harmonie avec les règles de l'art.

pour un foncitonnement optimum des macros, il est important de déclarer les variables.
VB:
Sub test()
Dim SH As Worksheet
  For Each SH In Worksheets
    SH.Protect Password:="XXX", UserInterfaceOnly:=True, Contents:=True, AllowFiltering:=True
Next SH
End Sub




Sub PictureUnLock()
Dim SH As Worksheet
mdp = InputBox("Veuillez entrer le mot de passe, svp", "Déprotection")
If mdp = "" Then Exit Sub
If mdp <> "XXX" Then
    MsgBox "vous n'avez pas les droits"
Else
    For Each SH In Worksheets
        SH.Unprotect mdp
    Next SH
    End If
End Sub
cdt
galougalou
Merci :), je vais essayer demain et je te tiens au courant :)
 

Discussions similaires

Statistiques des forums

Discussions
312 076
Messages
2 085 086
Membres
102 773
dernier inscrit
dorok