Protéger toutes les feuilles

  • Initiateur de la discussion Initiateur de la discussion boullitt93
  • 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 !

B

boullitt93

Guest
Bonsoir,

Je souhaiterai juste pouvoir utiliser la macro (fichier en PJ) pour protéger et déprotéger la totalité des feuilles ?

A vous lire

Merci d'avance
 

Pièces jointes

Re : Protéger toutes les feuilles

Bonsoir boullit93,

Il te suffit de modifier ta macro comme suit :

Code:
Private Sub ToggleButton1_Click()
Dim MdP As String
 If ToggleButton1 = True Then
    ToggleButton1.Interior.ColorIndex = 3
    For sh = 1 To ActiveWorkbook.Sheets.Count
      Sheets(sh).Protect "alain"
      ToggleButton1.BackColor = &HFF&
      ToggleButton1.Caption = "Déprotection"
    Next
  Else
    MdP = InputBox("Mot de passe ?", "Déblocage de la feuille")
    If MdP = "alain" Then
    For sh = 1 To ActiveWorkbook.Sheets.Count
        Sheets("Feuil1").Unprotect "alain"
        ToggleButton1.BackColor = &HFF00&
        ToggleButton1.Caption = "Protection"
      Next
    End If
End If
End Sub

Espérant avoir répondu.

Cordialement.
 
Re : Protéger toutes les feuilles

Bonjour à tous,

Peux-tu essayer avec :
Code:
Private Sub ToggleButton1_Click()
Dim MdP As String
Dim X As Byte
For X = 1 To ActiveWorkbook.Worksheets.Count
 If ToggleButton1 = True Then
    ToggleButton1.Interior.ColorIndex = 3
    Sheets(X).Protect "alain"
    ToggleButton1.BackColor = &HFF&
    ToggleButton1.Caption = "Déprotection"
    
 Else
    MdP = InputBox("Mot de passe ?", "Déblocage de la feuille")
    If MdP = "alain" Then
    Sheets(X).Unprotect "alain"
    ToggleButton1.BackColor = &HFF00&
    ToggleButton1.Caption = "Protection"
    End If
End If
Next
End Sub

A+ à tous
 
Re : Protéger toutes les feuilles

Bonjour à tous,


Une version avec la boucle For Each et une protection sans sélection possible:

Private Sub ToggleButton1_Click()
Dim MdP As String, Feuille As Worksheet
If ToggleButton1 = True Then
For Each Feuille In Sheets
ToggleButton1.Interior.ColorIndex = 3
Feuille.Protect "alain", DrawingObjects:=True, Contents:=True, Scenarios:=True
Feuille.EnableSelection = xlNoSelection
ToggleButton1.BackColor = &HFF&
ToggleButton1.Caption = "Déprotection"
Next Feuille
Else
MdP = InputBox("Mot de passe ?", "Déblocage de la feuille")
If MdP = "alain" Then
For Each Feuille In Sheets
Feuille.Unprotect "alain"
ToggleButton1.BackColor = &HFF00&
ToggleButton1.Caption = "Protection"
Next Feuille
End If
End If
End Sub
 
Re : Protéger toutes les feuilles

Apparemment, dans la macro de JCGL, il faut saisir le mot de passe autant de fois qu'il y a de feuilles , dans la macro de Papou-net, le déblocage ne s'effectue pas sur la totalité des feuilles et dans la macro de CBernard T, ça marche !

Dois-je faire un MIX ?
 
Re : Protéger toutes les feuilles

Re,

Quelques explications :

Private Sub ToggleButton1_Click()
' Déclaration des variables
Dim MdP As String, Feuille As Worksheet
' Définition de l'état du bouton
If ToggleButton1 = True Then ' Soit normal pour la protection
' Boucle sur les feuilles de la collection des feuilles du classeur
For Each Feuille In Sheets
' Protection de l'objet feuille actif de la collection des feuilles
Feuille.Protect "alain", DrawingObjects:=True, Contents:=True, Scenarios:=True
' Propriété qui interdit toute sélection dans l'objet feuille actif
Feuille.EnableSelection = xlNoSelection
ToggleButton1.BackColor = &HFF& ' Changement de couleur de fond
ToggleButton1.Caption = "Déprotection" ' Changement d'identification du bouton
Next Feuille ' Changement d'objet feuille
Else ' Soit Enfoncé pour la supprimer la protection
' Ouverture d'une boite de dialogue qui permet à l'utilisatyeur de taper un texte
MdP = InputBox("Mot de passe ?", "Déblocage de la feuille")
' Si le mot de passe tapé est égal à alain alors
If MdP = "alain" Then
' Boucle sur les feuilles de la collection des feuilles du classeur
For Each Feuille In Sheets
' Suppression de la protection de l'objet feuille actif de la collection des feuilles
Feuille.Unprotect "alain"
ToggleButton1.BackColor = &HFF00& ' Changement de couleur de fond
ToggleButton1.Caption = "Protection" ' Changement d'identification du bouton
Next Feuille ' Changement d'objet feuille
End If
End If
End Sub
 
Re : Protéger toutes les feuilles

Apparemment, dans la macro de JCGL, il faut saisir le mot de passe autant de fois qu'il y a de feuilles , dans la macro de Papou-net, le déblocage ne s'effectue pas sur la totalité des feuilles et dans la macro de CBernard T, ça marche !

Dois-je faire un MIX ?

Si, la totalité des feuilles est bloquée/débloquée (enfin si on remplace Sheets("Feuil1").Unprotect "alain" par Sheets(sh).Unprotect "alain").
Par contre, il faut sélectionner une cellule dans la feuille où se trouve le bouton pour que la protection se mette à jour.

Cordialement.
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
883
  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
288
Réponses
4
Affichages
224
Retour