Deuxième mot de passe incorecte

danpom302

XLDnaute Nouveau
Bonjour à tous,

J'ai un problème avec une macro et je ne parviens pas au résultat recherché. (Voir mon code plus bas)

Dans une feuille Excel 2010, lorsque je sélectionne les touches Ctrl+Shift+C, un message invite l'utilisateur à entrer un mot de passe. Lorsque j'entre le bon mot de passe, la feuille se déverrouille, les colonnes M, N et O s'affichent et la cellule M7 est sélectionnée. Jusqu'ici tout fonctionne bien.

Lorsque l'utilisateur entre un mot de passe incorrect, un message s'affiche mentionnant : "Mot de passe invalide". L'utilisateur clique sur Ok et un message l'invite à entrer le mot de passe.

Jusqu'ici tout fonctionne bien.

Par contre, si l'utilisateur entre une deuxième fois un mot de passe incorrect, j'obtiens le message suivant : Erreur d'exécution 1004, Mot de passe invalide etc..

J'aimerais qu'au deuxième mot de passe invalide, le macro sorte du code (Exit Sub).

Pouvez-vous m'aider s.v.p. à régler ce problème?

Code:
Sub Afficher_2()
    '
    ' Afficher_2 Macro
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+C

       On Error GoTo fin1
              
ici:
       If ActiveSheet.Unprotect = False Then Exit Sub

        Columns("L:P").Select
        Selection.EntireColumn.Hidden = False
        Range("P7").Select
        Range("M7").Select
        
fin1: If Err.Number > 0 Then MsgBox "Mot de passe invalide": GoTo ici
    
    End Sub

Merci pour votre aide,

Dan
 

youky(BJ)

XLDnaute Barbatruc
Re : Deuxième mot de passe incorecte

Bonjour Dan,
Voici un peu remodelé..
Bruno

Code:
Sub Afficher_2()
    Dim quota As Long
    ' Touche de raccourci du clavier: Ctrl+Shift+C
    On Error Resume Next
debut:
    quota = quota + 1
If quota > 2 Then MsgBox "Trop de fois  Bye bye!", vbExclamation, "Annulation": Exit Sub
 
ActiveSheet.Unprotect
    Columns("L:P").EntireColumn.Hidden = False
    Range("M7").Select
       If Err = 0 Then
         quota = ""
       Else
         MsgBox "Mot de passe invalide"
         GoTo debut
      End If
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Deuxième mot de passe incorecte

Bonjour Dan, Bruno, bonjour le forum,

Il me semble qu'il manque l'InputBox dans vos codes non ? Je verrais les choses comme ça :
Code:
Sub Afficher()
' Touche de raccourci du clavier: Ctrl+Shift+C

Dim nb As Byte
Dim mp As String

debut:
mp = InputBox("Entrez le mot de passe.", "MOT DE PASSE")
If mp = "" Then Exit Sub
nb = nb + 1
If mp <> "toto" Then (à adapter à ton cas)
    If nb > 2 Then
        MsgBox "Vous n'avez droit qu'à trois essais !", vbExclamation, "Annulation"
        'ThisWorkbook.Close SaveChanges:=False (à accepter ou pas)
        Exit Sub
    End If
    MsgBox "Mot de passe invalide"
    GoTo debut
Else
    ActiveSheet.Unprotect
    Columns("L:P").EntireColumn.Hidden = False
    Range("M7").Select
End If
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Deuxième mot de passe incorecte

Bonjour Robert et à Sète,
L'inputbox est inutile, le fait de mettre Activesheet.unprotect Excel le demande automatiquement
avec la boite de dialogue habituelle.
J'ai eu le même réflexe que toi.
Bruno
 

danpom302

XLDnaute Nouveau
Re : Deuxième mot de passe incorecte

Bonjour Robert et Bruno,

Merci pour vos commentaires. Le tout fonctionne bien. Il me reste un problème à poster concernant un bouton de contrôle formulaire vulnérable lorsque la feuille est protégée.

Merci,

Dan
 

Discussions similaires

Réponses
5
Affichages
390
Compte Supprimé 979
C
Réponses
6
Affichages
189

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83