Protéger toutes les feuilles

boullitt93

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

  • essaimacroprotection.xls
    37 KB · Affichages: 80

Papou-net

XLDnaute Barbatruc
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.
 

JCGL

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

CBernardT

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

boullitt93

XLDnaute Nouveau
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 ?
 

CBernardT

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

Papou-net

XLDnaute Barbatruc
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:

Discussions similaires

Réponses
2
Affichages
388

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens