Accès aux feuilles protégées

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

L

Lipaika

Guest
Bonjour,

Toutes mes feuilles sont protégées par un même mot de passe.
J'ai un bouton toggle qui me permet configurer (donc unprotect sheets) quand il est à True, et de protéger quand il est à false.
Un password permet de d'avoir accès au mode config.
Mon problème avec le code ci dessous, c'est que si l'utilisateur fournit un mauvais mot de passe, le fenêtre est celle du déboggeur.

Code:
Private Sub config_Click()
Dim nom As String
For Each feuil In Sheets
    nom = feuil.Name
    If nom <> "Start" Then
    If config.Value Then
            Application.DisplayAlerts = False
            If IsError(ActiveSheet.Unprotect) = False Then
            Call unprotect_pass(nom)
            config.Caption = "Protect sheets"
            Else
            config.Value = False
            End If
    Else
            Call protect_pass(nom)
            config.Caption = "Configure"
    End If
    End If
Next feuil
Sheets("Guide").Activate
Application.DisplayAlerts = True
End Sub

Public Sub protect_pass(sheet As String)
    Sheets(sheet).Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=pass
End Sub

Public Sub unprotect_pass(sheet As String)
    Sheets(sheet).Activate
    ActiveSheet.Unprotect Password:=pass
End Sub

merci
 
Re : Accès aux feuilles protégées

Oups, j'ai un autre petit bug dans mon code...
Si je fais cancel sur la fenêtre Unprotect, il fait quand même le unprotect!!!
Comment récupère t on les les indications de cette boite de dialog automatique??

Merci
 
Re : Accès aux feuilles protégées

bonjour Lipaika

je remarque dans ton code que tu utilises des noms de variable qui sont en realité des Propietes ou des methodes VBA

Sheet et une propriete VBA, tu l'utilises comme nom de variable---> tres dangereux
 
Re : Accès aux feuilles protégées

Merci du conseil,
j'ai remplacé sheet par sheet_name
ça ne règle pas le PB, mais vaut mieux être prudent!!


Code:
Public Sub protect_pass(sheet_name As String)
    Sheets(sheet_name ).Activate
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=pass
End Sub

Public Sub unprotect_pass(sheet_name  As String)
    Sheets(sheet_name ).Activate
    ActiveSheet.Unprotect Password:=pass
End Sub
 
Re : Accès aux feuilles protégées

re:

je ne protege pas mes feuilles generalement, donc je n'ai pas vraiement de connaissance la dessus.
l'activation d'une feuille normalement n'a aucune inscidence sur la protection

mais tu n'es pas obligé d'activer une feuille pour travailler dessus

Sheets(sheet_name ).Unprotect Password:=pass

par contre si dans ta feuille tu as une macro à lancer lors de sont activation,
son activation etant faite avant sa deprotection tu vas avoir des probleme
 
- 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
7
Affichages
176
Retour